Автор | Сообщение |
|
| постоянный участник
|
Пост N: 6069
Зарегистрирован: 12.09.06
|
|
Отправлено: 11.10.18 17:25. Заголовок: MsgInfo(), MsgStop(), MsgExclamation(), MsgDebug()
Уже скоро 2019 год будет, а эти функции до сих пор неизменны. Экраны большие у пользователей уже давно. Замучили юзера вопросом, а побольше шрифт можно сделать для этих окон ? A то читать приходиться через лупу. Настолько мелкий шрифт в этих сообщениях для больших экранов. Можно ли установить для этих окон при запуске программы РАЗМЕР фонта, ну и до кучи сам фонт ? Типа: SET MSGFUNCT FONT TO cFont, nFontSize Как есть команда: SET FONT TO cFont, nFontSize Ну и до кучи задать другой размер иконки и картинки: SET MSGFUNCT SIZE 256 // или 48, 64, 72, 96, 128 SET MSGINFO SIZE 64 ICO "INFO64.ICO" Тогда за иконку отвечать будет сам программист. Нет иконки в ресурсах, и нет в окошке иконки. И цвета окошек тоже: SET MSGINFO BACKCOLOR aDim1 FONTCOLOR aDim2 SET MSGSTOP BACKCOLOR aDim1 FONTCOLOR aDim2 SET MSGEXCL BACKCOLOR aDim1 FONTCOLOR aDim2 SET MSGDEBUG BACKCOLOR aDim1 FONTCOLOR aDim2 Если это нельзя сделать для этих функций и не хочется увеличивать размер ресурсов для текущей версии МиниГуи, то хотелось бы иметь дополнительную библиотеку MiniguiExt.lib и файл ресурсов miniguiExt.res Т.е. сделать доп.функции: Msg2Info(), Msg2Stop(), Msg2Exclamation(), Msg2Debug() Оставить обычный синтаксис и типа такого: SET MSG2FUNCT FONT TO cFont, nFontSize SET MS2GINFO SIZE 64 ICO "INFO64.ICO" Msg2Info( cMsg , "Инфо", ......, cFont, nFontSize, 64, "INFO64.ICO", aDim1, aDim2 ) ------------------------------------------------------------------ Надоели танцы с бубнами, чтобы сменить иконку в этих функциях !!! Сначала в ресурсном файле объявить: #define MSGINFO 1005 Потом в prg-модуле нужно ставить: #define MSGINFO 1005 и ещё потом уже где тебе нужно: MsgInfo( cMsg , "Инфо", MSGINFO, .F. ) А по простому нельзя сделать ?
|
|
|
Ответов - 194
, стр:
1
2
3
4
5
6
7
8
9
10
All
[только новые]
|
|
|
| постоянный участник
|
Пост N: 2967
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.11.19 01:00. Заголовок: Andrey пишет Btn_01 ..
Andrey пишет цитата: | Btn_01 Of Form_CardOpl Not defined. |
| На окне Form_CardOpl timer есть ? Если есть, его (все timer работающие) надо отключать, когда, что то делаешь и вкл. когда закончил.
|
|
|
|
| постоянный участник
|
Пост N: 6532
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.11.19 10:47. Заголовок: SergKis пишет: На о..
SergKis пишет: цитата: | На окне Form_CardOpl timer есть ? |
| Нет у него таймера. У меня и в других окнах так же вылетает.
|
|
|
|
| постоянный участник
|
Пост N: 2968
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.11.19 12:27. Заголовок: Andrey пишет Нет у н..
Andrey пишет цитата: | Нет у него таймера. У меня и в других окнах так же вылетает. |
| Проверить не могу, не стоит bcc 5.8, но по тексту имя окна hmg_alert() "oDlg" LOCAL cForm := "oDlg" IF _IsWindowDefined( cForm ) nLineas := 0 WHILE _IsWindowDefined( cForm := "oDlg" + hb_ntos( ++nLineas ) ) END ENDIF ... DEFINE WINDOW (cForm) WIDTH 0 HEIGHT 0 TITLE cTitle MODAL NOSIZE BACKCOLOR aBackColor ; ON INTERACTIVECLOSE ( lPressButton .OR. lClosable ) ; ON RELEASE iif( !lPressButton .AND. lClosable, _HMG_ModalDialogReturn := 0, NIL ) FillDlg( cMsg, aOptions, nLineas, cIcoFile, nIcoSize, aBtnColors, bInit, lClosable, cFontName ) // тут снятие END WINDOW ... добавь в bInit := {|| _logfile(.t., This.Name), this.topmost := .t. ,; this.Btn_01.Fontcolor := BLACK ,; this.Btn_02.Fontcolor := BLACK } какое имя окна ?
|
|
|
|
| постоянный участник
|
Пост N: 6533
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.11.19 14:15. Заголовок: SergKis пишет: како..
SergKis пишет: Код: Function MG_YESNO(...) ..... ? ProcNameLine() + "--1-----------------------" bInit := {|| _logfile(.t., This.Name), this.topmost := .t. ,; this.Btn_01.Fontcolor := BLACK ,; this.Btn_02.Fontcolor := BLACK } // строка 166 ? ProcNameLine() + "--2-----------------------" // строка 168 nK := HMG_Alert( cMsg, aButton, cTitle, NIL, cIcoRes, nIcoSize, aButColor, bInit ) // строка 169 Лог-файл: Вызов из: MG_YESNO(162) --> util_Alert.prg--1----------------------- Вызов из: MG_YESNO(168) --> util_Alert.prg--2----------------------- Form_CardOpl Вылет по ошибке: Error MGERROR/0 Control: Btn_01 Of Form_CardOpl Not defined. Program terminated. --------------------------------- Stack Trace --------------------------------- Called from MSGMINIGUIERROR(100) in module: h_error.prg Called from SETPROPERTY(3977) in module: h_controlmisc.prg Called from (b)MG_YESNO(166) in module: util_Alert.prg Called from DO_WINDOWEVENTPROCEDURE(82) in module: h_objmisc.prg Called from FILLDLG(355) in module: h_alert.prg Called from HMG_ALERT(166) in module: h_alert.prg Called from MG_YESNO(169) in module: util_Alert.prg
|
|
|
|
| постоянный участник
|
Пост N: 2971
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.11.19 14:23. Заголовок: Andrey А если так S..
Andrey А если так SET OOP ON ... bInit := {|ow| _logfile(.t., This.Name, ow:Name), this.topmost := .t. ,; this.Btn_01.Fontcolor := BLACK ,; this.Btn_02.Fontcolor := BLACK }
|
|
|
|
| постоянный участник
|
Пост N: 2972
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.11.19 14:44. Заголовок: PS Что покажет ?..
PS Что покажет ? ProcNameLine() + "--2-----------------------", ThisWindow.Name // строка 168
|
|
|
|
| постоянный участник
|
Пост N: 6534
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.11.19 14:50. Заголовок: SergKis пишет: А ес..
SergKis пишет: Вылет: Error BASE/1004 Метод не экспортирован: NAME --------------------------------- Stack Trace --------------------------------- Called from NAME(0) Called from (b)MG_YESNO(166) in module: util_Alert.prg Called from DO_WINDOWEVENTPROCEDURE(82) in module: h_objmisc.prg Called from FILLDLG(355) in module: h_alert.prg Called from HMG_ALERT(166) in module: h_alert.prg SergKis пишет: Вызов из: MG_YESNO(162) --> util_Alert.prg--1----------------------- Вызов из: MG_YESNO(168) --> util_Alert.prg--2----------------------- Form_CardOpl
|
|
|
|
| постоянный участник
|
Пост N: 2973
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.11.19 15:02. Заголовок: Andrey Error BASE/1..
Andrey цитата: | Error BASE/1004 Метод не экспортирован: NAME |
| Извини, это в моей версии передается объект окна, а тут нет такого. Хотел проверить создание окна oDlg было ли ? Если было то фокус должен был быть на нем и this среда его. Похоже окно hmg_alert не создано, т.к. this среда осталась от предыдущего окна. Пробни bInit := {|| _logfile(.t., This.Name, _IsWindowDefined('oDlg')), this.topmost := .t. ,; this.Btn_01.Fontcolor := BLACK ,; this.Btn_02.Fontcolor := BLACK } // строка 166
|
|
|
|
| постоянный участник
|
Пост N: 6535
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.11.19 15:03. Заголовок: Поставил вызов этой ..
Поставил вызов этой функции (без ow:Name) в главной форме, всё отлично работает. Вот лог: Вызов из: TEST(524) --> 11main.prg--0----------------------- Вызов из: MG_YESNO(162) --> util_Alert.prg--1----------------------- Вызов из: MG_YESNO(168) --> util_Alert.prg--2----------------------- Form_Main oDlg .T.
|
|
|
|
| постоянный участник
|
Пост N: 2974
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.11.19 15:14. Заголовок: А на родном месте ? ..
А на родном месте ? на маин не так интересно, т.к. окон мало
|
|
|
|
| постоянный участник
|
Пост N: 6536
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.11.19 15:17. Заголовок: SergKis пишет: Проб..
SergKis пишет: Вызов из: TEST(524) --> 11main.prg--0----------------------- Вызов из: MG_YESNO(162) --> util_Alert.prg--1----------------------- Вызов из: MG_YESNO(168) --> util_Alert.prg--2----------------------- Form_Main oDlg .T. .T. Вызов из: MG_YESNO(162) --> util_Alert.prg--1----------------------- Вызов из: MG_YESNO(168) --> util_Alert.prg--2----------------------- Form_CardOpl Form_CardOpl .T. Получается на главной форме ( Form_Main) работает, а в нужном окне нет. Почему ? На главной форме таймер сидит. У меня в рабочей программе 3 таймера используются, без них никак ! Отключил таймер. Всё равно такая же ошибка ! Раньше стояла функция MsgYesNo() - решил переделать на свою и облом, то работает, то нет.
|
|
|
|
|
| постоянный участник
|
Пост N: 2975
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.11.19 15:33. Заголовок: Andrey пишет Всё рав..
Andrey пишет цитата: | Всё равно такая же ошибка ! |
| Если таймеры отключены, то трассируй h_alert.prg на предмет значения ThisWindow.name в *-----------------------------------------------------------------------------* STATIC FUNCTION FillDlg( cMsg, aOptions, nLineas, cIcoFile, nIcoSize, aBtnColors, bBlock, lClosable, cFont ) *-----------------------------------------------------------------------------* ... цитата: | На главной форме таймер сидит. У меня в рабочей программе 3 таймера используются, без них никак ! |
| По мне, без глобальных таймеров обходиться можно (он может нарушить this среду если не управлять его вкл.\выкл.). Просто распределяешь работу таймера на смену режимов\окон\событий клавы и мыши ... Таимер тек. окна то же может нарушить this среду, без упр. вкл.\выкл., если работает блок кода для контрола, кнопки например - это надо учитывать делая останов\пуск таймера
|
|
|
|
| постоянный участник
|
Пост N: 6537
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.11.19 15:37. Заголовок: Andrey пишет: Отклю..
Andrey пишет: цитата: | Отключил таймер. Всё равно такая же ошибка ! |
| Дело не в таймере ! Раньше стояла функция MsgYesNo() - решил переделать на свою через HMG_ALERT() и облом, то работает, то нет.
|
|
|
|
| постоянный участник
|
Пост N: 2976
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.11.19 15:43. Заголовок: Andrey пишет решил п..
Andrey пишет цитата: | решил переделать на свою через HMG_ALERT() и облом, то работает, то нет. |
| Так потестируй h_alert.prg _logfile(...), раз у тебя вылезло в данном месте стабильное сваливание, найди причину, пересобирая либу
|
|
|
|
| постоянный участник
|
Пост N: 2977
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.11.19 15:48. Заголовок: Andrey пишет Дело не..
Andrey пишет Если у тебя глобальные таймеры и ты ими не жестко управляешь, то могут быть бяки при работе с This средой. Возможно, надо отказаться в таком случае от нее и оперировать факт. именами окон и контролов всегда. Только это хотел сказать про таймер и this среду
|
|
|
|
| постоянный участник
|
Пост N: 6538
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.11.19 16:10. Заголовок: Пробовал в других ме..
Пробовал в других местах вызов HMG_ALERT(), работает. Как вызываю из таблицы свою карточку (окно Form_CardOpl), вот там вылетает... Обычное окно, по базе ищет что нужно. Мистика какая то ...
|
|
|
|
| постоянный участник
|
Пост N: 2978
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.11.19 16:18. Заголовок: Andrey пишет Как выз..
Andrey пишет цитата: | Как вызываю из таблицы свою карточку (окно Form_CardOpl), вот там вылетает... |
| Обвесь _logfile(...) как писал выше в h_alert.prg, посмотри, что даст log У бери NOSHOW при создании окна и снова посмотри. Понятнее будет с мистикой ...
|
|
|
|
| постоянный участник
|
Пост N: 6539
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.11.19 16:58. Заголовок: Забодался искать. Сд..
У меня 2 окна скрываются, т.е. делаю DoMethod( сForm, "Hide" ) два раза, чтобы окон много не было. Может из-за этого, но по другому нельзя. Забодался искать. Сделал так: bInit := {|| _logfile(.t., This.Name, _IsWindowDefined('oDlg')) ,; SetProperty("oDlg", "Topmost", .t. ) ,; SetProperty("oDlg", "Btn_01", "Fontcolor", BLACK ) ,; SetProperty("oDlg", "Btn_02", "Fontcolor", BLACK ) } Надеюсь теперь ВСЕГДА будут работать !
|
|
|
|
| постоянный участник
|
Пост N: 6614
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.04.20 23:15. Заголовок: Всем привет ! Возвра..
Всем привет ! Возвращаюсь опять к функции HMG_ALERT(). Если очень много строк передаю в эту функцию (а это часто бывает) , то беда с этим окном ! Верх и низ окна просто УЛЕТАЮТ за границу экрана. Вот примерно выглядит так это: Юзера в шоке, я тоже. Кнопки закрыть и выйти нет ! Писать ещё свою функцию нет резона, хотелось бы одну стандартную. Т.е. достаточно было бы проверить в HMG_ALERT() выход за границы экрана и уменьшить их.. А сам текст хотелось бы "затолкать" в объект EDITBOX в режиме READONLY Вот так примерно чтобы выглядело: Такое решение было бы просто отличным для многих ! Заранее спасибо ! Проект для пробы выкладываю - https://cloud.mail.ru/public/g3VA%2Fi87fBERHx
|
|
|
|
| Администратор
|
Пост N: 3937
Зарегистрирован: 23.05.05
|
|
Отправлено: 14.04.20 08:02. Заголовок: Юзера в шоке, я тоже..
цитата: | Юзера в шоке, я тоже. Кнопки закрыть и выйти нет |
| Я в подобном случае проверяю количество строк, и при превышении некоторого значения вместо alert формирую окно с бровсом и кнопками
|
|
|
Ответов - 194
, стр:
1
2
3
4
5
6
7
8
9
10
All
[только новые]
|
|