Автор | Сообщение |
|
| постоянный участник
|
Пост 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. ) А по простому нельзя сделать ?
|
|
|
Новых ответов нет
, стр:
1
2
3
4
5
6
7
8
9
10
All
[см. все]
|
|
|
| постоянный участник
|
Пост N: 2286
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.03.19 21:34. Заголовок: Andrey пишет Хотелос..
Andrey пишет цитата: | Хотелось бы иметь и альтернативу этому кодоблоку. |
| Альтернатива - своя функция (библиотека их: AlertYesNo(), ...) FUNC Alert(...) LOCAL nRet := 2 LOCAL bBlk := ... nRet := hmg_alert(..., bBlk) RETURN nRet
|
|
|
|
| постоянный участник
|
Пост N: 6197
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.03.19 21:39. Заголовок: SergKis пишет: Альт..
SergKis пишет: цитата: | Альтернатива - своя функция (библиотека их: AlertYesNo(), ...) |
| Ну да. Так тоже можно.... Ждём новую версию тогда...
|
|
|
|
| постоянный участник
|
Пост N: 6198
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.03.19 21:49. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | EraseWindow( this.name ), ; |
| А это для чего нужно ? gfilatov2002 пишет: цитата: | this.say_06.alignment := "left", |
| Если такой строки не будет - какой будет результат ?
|
|
|
|
| moderator
|
Пост N: 1475
Зарегистрирован: 11.02.10
|
|
Отправлено: 22.03.19 22:13. Заголовок: Andrey пишет: Если ..
Andrey пишет: цитата: | Если такой строки не будет - какой будет результат ? |
| Врт такой будет экран Код _HMG_ModalDialogReturn := 2 cMsg := "Первая строка;;Вторая строка;" + Repl( "-._.", 15 ) + ";;Четвертая строка" SET MSGALERT FONTCOLOR TO NAVY b := {|idx| this.say_01.alignment := "left", ; this.say_03.alignment := "left", ; this.say_04.alignment := "left", ; ;// this.say_06.alignment := "left", ; ;// EraseWindow( this.name ), ; ;// HMG_DrawIcon( this.name, "demo.ico", 30, 30, 48, 48, , .t. ), ; this.topmost := .t.} nK := HMG_Alert( cMsg, {"&Поиск","&Отмена", "&Восстановить"}, "Внимание!", Nil, "alert.ico", 64, {YELLOW, RED, GREEN}, b )
|
|
|
|
| постоянный участник
|
Пост N: 6199
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.03.19 22:21. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | ;// this.say_06.alignment := "left", ; |
| Не совсем понятно. Допустим нет в сообщении 6-8 строки вообще. А сделано так (т.е. по максимому для больших сообщений): this.say_06.alignment := "left", ; this.say_07.alignment := "left", ; this.say_08.alignment := "left", ; Что тогда будет ? Вылет ?
|
|
|
|
| постоянный участник
|
Пост N: 2287
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.03.19 22:26. Заголовок: Andrey У тебя ТВОЙ ..
Andrey У тебя ТВОЙ массив с текстами, работай от его длины AEval(aTxt, {|ct,nt| ct := 'Say_'+strzero(nt,2), This.&(ct).Aligment :='Left' })
|
|
|
|
| постоянный участник
|
Пост N: 6200
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.03.19 22:37. Заголовок: Понял. Спасибо ! :s..
Понял. Спасибо !
|
|
|
|
| постоянный участник
|
Пост N: 6213
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.03.19 18:19. Заголовок: Версия МиниГуи 19.02..
Версия МиниГуи 19.02 Запускаю свою большую программу. Окно DEFINE WINDOW Form_Main ; MAIN NOSHOW ; ..... END WINDOW // Показ заставки: DEFINE WINDOW PICTURE/DELAY/ ON RELEASE _DefineSplashWindow( "Form_Splash",,,,, "SPLASH", 10, {|| Addition_MainForms() } ) ACTIVATE WINDOW Form_Splash, Form_Main ............... В Procedure _SplashDelay() запуск нескольких функций через Eval( hb_macroBlock( M->aRunCheck[nI] ) ) Ставлю в одной из них вот так: nK := HMG_Alert( cMsg, {"&Перезапуск","&Отмена"}, "Внимание!", Nil, "iExclam64", 64 ) Прога вешается наглухо !!! Если пытаюсь снять прогу через МЕНЕДЖЕР ЗАДАЧ, то и он сам вешается... Если меняю сообщение на MsgYesNo( cMsg, "Внимание!", .F. ) - то ВСЁ работает !!! Почему ? Что ещё нужно HMG_Alert() ?
|
|
|
|
| постоянный участник
|
Пост N: 2295
Зарегистрирован: 17.02.12
|
|
Отправлено: 26.03.19 19:49. Заголовок: Andrey У тебя нет о..
Andrey У тебя нет окна main и не стоит режим работы без main, для hmg_alert нужен окно-родитель Сделай так примерно DEFINE WINDOW Form_Main ; MAIN NOSHOW ; ON INIT _wPost(1) ; ..... (This.Object):Event( 1, {|| SplasShow() }) END WINDOW ACTIVATE WINDOW Form_Main ... STAT FUNC SplashShow() // здесь окна и запуски ф-й из массива RETURN Nil
|
|
|
|
| постоянный участник
|
Пост N: 6214
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.03.19 20:51. Заголовок: Спасибо ! Буду пробо..
Спасибо ! Буду пробовать !
|
|
|
|
| постоянный участник
|
Пост N: 6219
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.03.19 18:00. Заголовок: Всем привет ! Разбир..
Всем привет ! Разбираюсь с новым HMG_Alert() А как сделать фокус на второй кнопке ? Вот так не работает: bInit := {|| this.Btn_02.Setfocus }
|
|
|
|
|
| постоянный участник
|
Пост N: 2298
Зарегистрирован: 17.02.12
|
|
Отправлено: 28.03.19 18:05. Заголовок: Andrey Посмотри вни..
Andrey Посмотри внимательно пример от Григория (выше), думаю, ответ найдешь.
|
|
|
|
| постоянный участник
|
Пост N: 6220
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.03.19 18:26. Заголовок: Да, нашёл. _HMG_Moda..
Да, нашёл. _HMG_ModalDialogReturn := 2 А почему не срабатывает this.Btn_02.Setfocus ? Или нужно писать Domethod(ThisWindow.Name, "Btn_02", "Setfocus") Хотя попробовал, тоже не срабатывает.
|
|
|
|
| постоянный участник
|
Пост N: 2299
Зарегистрирован: 17.02.12
|
|
Отправлено: 28.03.19 18:38. Заголовок: Andrey пишет В исхо..
Andrey пишет [quote]` В исходнике, ясно написано (если глянешь ) IF HB_ISBLOCK( bBlock ) Do_WindowEventProcedure( bBlock, This.Index, 'WINDOW_ACTIVATE' ) ENDIF oDlg.&( aBut[ iif( Empty( _HMG_ModalDialogReturn ), 1, _HMG_ModalDialogReturn ) ] ).SetFocus() Т.е. стачала работает блок, потом ...SetFocus Можешь установить блок кода на ON INIT окна в bInit и там сделать This.Btn_02.SetFocus или на др. контрол, игнорируя _HMG_ModalDialogReturn
|
|
|
|
| постоянный участник
|
Пост N: 2300
Зарегистрирован: 17.02.12
|
|
Отправлено: 28.03.19 18:44. Заголовок: PS Возможно, для бол..
PS Возможно, для большей свободы, строку уст. фокуса можно переставить выше блока
|
|
|
|
| постоянный участник
|
Пост N: 6221
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.03.19 18:47. Заголовок: Вылетает теперь прог..
Вылетает теперь программа на HMG_Alert(): Error BASE/1132 Переполнение массива: Неверное количество аргументов Called from FILLDLG(329) in module: h_alert.prg Called from (b)HMG_ALERT(150) in module: h_alert.prg Called from DO_WINDOWEVENTPROCEDURE(82) in module: h_objmisc.prg Called from _ACTIVATEWINDOW(1314) in module: h_windows.prg Called from HMG_ALERT(150) in module: h_alert.prg Строка 329: oDlg.&( aBut[ iif( Empty( _HMG_ModalDialogReturn ), 1, _HMG_ModalDialogReturn ) ] ).SetFocus() При таких условиях: первый вызов _HMG_ModalDialogReturn := 2 nK := HMG_Alert( cMsg, {"&Да ","&Нет"}, ...) Потом в коде где-то далее делаем простой вызов: HMG_Alert( cMsg, {"&Продолжить"}, ...) Т.е. тогда всегда явно нужно указывать для ОДНОЙ кнопки: _HMG_ModalDialogReturn := 1 Что не очень удобно при написании кода. Причём эту ошибку в отдельном примере не смог сделать.
|
|
|
|
| постоянный участник
|
Пост N: 2301
Зарегистрирован: 17.02.12
|
|
Отправлено: 28.03.19 18:53. Заголовок: Andrey На базе hmg_..
Andrey На базе hmg_alert напиши свои ф-ии, уже говорили выше AlertOk() AlertYesNo() Alert3Btn() Alert4Btn() и используй их с уст. _hmg_modaldialogreturn
|
|
|
|
| постоянный участник
|
Пост N: 2302
Зарегистрирован: 17.02.12
|
|
Отправлено: 28.03.19 18:56. Заголовок: PS или #xcommand Al..
PS или #xcommand AlertOK()... если не устраивают ф-ии и там все ставь
|
|
|
|
| постоянный участник
|
Пост N: 6222
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.03.19 19:06. Заголовок: SergKis пишет: На б..
SergKis пишет: цитата: | На базе hmg_alert напиши свои ф-ии, уже говорили выше |
| Да наверное так и сделаю. Спасибо !
|
|
|
|
| moderator
|
Пост N: 1480
Зарегистрирован: 11.02.10
|
|
Отправлено: 28.03.19 21:04. Заголовок: SergKis пишет: На б..
SergKis пишет: цитата: | На базе hmg_alert напиши свои ф-ии |
| Благодарю за предложение Уже добавил в новую бета-сборку такие функции по аналогии с функциями Msg*(): AlertYesNo ( Message, Title, RevertDefault, Icon, nSize, aColors, bInit ) AlertYesNoCancel ( Message, Title, nDefaultButton, Icon, nSize, aColors, bInit ) AlertRetryCancel ( Message, Title, nDefaultButton, Icon, nSize, aColors, bInit ) AlertOkCancel ( Message, Title, nDefaultButton, Icon, nSize, aColors, bInit ) AlertInfo ( Message, Title, Icon, nSize, aColors, bInit ) AlertStop ( Message, Title, Icon, nSize, aColors, bInit ) AlertExclamation ( Message, Title, Icon, nSize, aColors, bInit )
|
|
|
Новых ответов нет
, стр:
1
2
3
4
5
6
7
8
9
10
All
[см. все]
|
|