Автор | Сообщение |
|
| постоянный участник
|
Пост 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
[только новые]
|
|
|
| moderator
|
Пост N: 1469
Зарегистрирован: 11.02.10
|
|
Отправлено: 20.03.19 12:14. Заголовок: SergKis пишет: Под ..
SergKis пишет: цитата: | Под bInit понимаю возможность добавить на окно галочки или radio group |
| Да, все это можно сделать Но ведь у нас есть благодаря Петру системная функция TaskDialog() с подобными возможностями А hmg_Alert() была задумана как быстрая замена функции Alert() из Клиппера
|
|
|
|
| moderator
|
Пост N: 1470
Зарегистрирован: 11.02.10
|
|
Отправлено: 20.03.19 12:17. Заголовок: SergKis пишет: Что ..
SergKis пишет: цитата: | Что делать, если 3-и кнопки или 4, как покрасить ? nK := HMG_Alert( cMsg, {"&Поиск","&Отмена", "&Восстановить"}, "Внимание!", Nil, "alert.ico", 64, {GREEN,RED} ) |
| Вот так Код DEFINE FONT DlgFont FONTNAME "Verdana" SIZE 16 _HMG_ModalDialogReturn := 2 cMsg := "Первая строка;;Вторая строка;" + Repl( "-._.", 15 ) + ";;Четвертая строка" nK := HMG_Alert( cMsg, {"&Поиск","&Отмена", "&Восстановить"}, "Внимание!", Nil, "alert.ico", 64, {YELLOW, RED, GREEN} ) HMG_Alert( nK )
|
|
|
|
| постоянный участник
|
Пост N: 2277
Зарегистрирован: 17.02.12
|
|
Отправлено: 20.03.19 12:31. Заголовок: gfilatov2002 пишет Н..
gfilatov2002 пишет цитата: | Но ведь у нас есть благодаря Петру системная функция TaskDialog() с подобными возможностями |
| Как то не манит ее использовать - сложновато и многовато, смотрел примеры в TaskDialog - работает все ок, но ... цитата: | А hmg_Alert() была задумана как быстрая замена функции Alert() из Клиппера |
| С добавлением icon по размерам + теперь цвета, она вышла за рамки "Alert() из Клиппера" А простые запросы куда архив откинуть (сервер, флэшка, диск, ...), уточнение по форме печати и похожие остались. Простые окна запросов постоянно делаются, думаю, hmg_Alert можно использовать вместо, простыми средствами
|
|
|
|
| постоянный участник
|
Пост N: 351
Зарегистрирован: 29.05.10
|
|
Отправлено: 20.03.19 12:34. Заголовок: Andrey пишет: Нет, ..
Andrey пишет: цитата: | Нет, здесь не буду извращаться. Хватит минимального сообщения. |
| Минимальные должны быть в ядре. Гргорий очень правильно сказал.Какая проблема сделать окошко с кнопками? Можно добавить ini файлик с настройками; размер,фонт, цвет и т.д А что бы окошко не "глушило" экран сделайте для текста скроллинг ( горизонтальный или вертикальный ), как в FW http://forums.fivetechsupport.com/viewtopic.php?f=3&t=18497&sid=1385f5e4cd43192128278e6396b9157e Окраску кнопок можно сделать трехслойной ( что бы глаза не резала) . Т.е. серые ( или что то нетральное) . При наводке курсора "раскрашивается". При активации вспыхивает ... Если уж изобретаете велосипед, то не делайте его деревянным :)
|
|
|
|
| постоянный участник
|
Пост N: 2278
Зарегистрирован: 17.02.12
|
|
Отправлено: 20.03.19 12:43. Заголовок: ММК пишет Гргорий оч..
ММК пишет цитата: | Гргорий очень правильно сказал.Какая проблема сделать окошко с кнопками? |
| Проблем сделать нет (делаются в реале), есть системная ф-я уже ПОЧТИ все делающая, привязывается по установке относительно какого окна центроваться (в своих это надо повторять каждый раз), ЕЕ, СИСТЕМНУЮ, ВЫБРОСИТЬ из использования или чуть поправить, усилив ?
|
|
|
|
| постоянный участник
|
Пост N: 2279
Зарегистрирован: 17.02.12
|
|
Отправлено: 20.03.19 12:50. Заголовок: gfilatov2002 пишет В..
gfilatov2002 пишет Это ожидаемо Осталось фон окна и label. Помнится, в Клипперной Alert цвет фонта и цвет текстов задавался SET COORом
|
|
|
|
| постоянный участник
|
Пост N: 2280
Зарегистрирован: 17.02.12
|
|
Отправлено: 20.03.19 12:51. Заголовок: PS SET COLORом , кон..
PS SET COLORом , конечно
|
|
|
|
| постоянный участник
|
Пост N: 6192
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.03.19 15:25. Заголовок: ММК пишет: Т.е. сер..
ММК пишет: цитата: | Т.е. серые ( или что то нетральное) . При наводке курсора "раскрашивается". |
| Так цветные кнопки просто в качестве примера. На самом деле будет что-то нейтральное. Бледно красное и бледно зеленое... А свои кнопки и менюшки можно сделать используя пример Tsb_Menu05.7z https://cloud.mail.ru/public/35pf/NqnpzXCSi Григорий, я тебе его высылал.
|
|
|
|
| постоянный участник
|
Пост N: 6193
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.03.19 15:39. Заголовок: SergKis пишет: Оста..
SergKis пишет: цитата: | Осталось фон окна и label. Помнится, в Клипперной Alert цвет фонта и цвет текстов задавался SET COORом |
| Ну да, может до кучи сделать изменение фона окна. Ну тогда хотелось бы через внешний глобальный параметр, типа: SET MSGALERT BACKCOLOR YELLOW SET MSGALERT LABELCOLOR BLUE
|
|
|
|
| moderator
|
Пост N: 1471
Зарегистрирован: 11.02.10
|
|
Отправлено: 20.03.19 17:10. Заголовок: Andrey пишет: сдела..
Andrey пишет: цитата: | сделать изменение фона окна. Ну тогда хотелось бы через внешний глобальный параметр, типа: SET MSGALERT BACKCOLOR YELLOW SET MSGALERT LABELCOLOR BLUE |
| Cделал, конечно Код ниже DEFINE FONT DlgFont FONTNAME "Verdana" SIZE 16 _HMG_ModalDialogReturn := 2 cMsg := "Первая строка;;Вторая строка;" + Repl( "-._.", 15 ) + ";;Четвертая строка" SET MSGALERT BACKCOLOR TO {240, 240, 240} SET MSGALERT FONTCOLOR TO NAVY nK := HMG_Alert( cMsg, {"&Поиск","&Отмена", "&Восстановить"}, "Внимание!", Nil, "alert.ico", 64, {YELLOW, RED, GREEN} ) P.S. Прозрачность для иконки задана, но выглядит немного коряво...
|
|
|
|
| постоянный участник
|
Пост N: 6194
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.03.19 21:45. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | P.S. Прозрачность для иконки задана, но выглядит немного коряво... |
| Пойдёт ! То что надо ! Спасибо !
|
|
|
|
|
| постоянный участник
|
Пост N: 2281
Зарегистрирован: 17.02.12
|
|
Отправлено: 21.03.19 11:31. Заголовок: gfilatov2002 пишет Н..
gfilatov2002 пишет цитата: | Но ведь у нас есть благодаря Петру системная функция TaskDialog() с подобными возможностями |
| Еще раз посмотрел примеры, класс TaskDialog. Совершенно не ясно как управлять расцветкой (свойствами) контролов, как добавить на окно tsb таблицу, как применить фонты из DEFINE FONT ...? Да и сама hmg_Alert() не сделана на TaskDialog, а на стандартных командах hmg. А в hmg_alert() с bInit можно спокойно добавить тсб таблицу, если надо, скрыть IMAGE, если не подобрать по сочетанию с backcolor, ... и др. штучки с окном\контролами проделать.
|
|
|
|
| moderator
|
Пост N: 1473
Зарегистрирован: 11.02.10
|
|
Отправлено: 21.03.19 13:32. Заголовок: SergKis пишет: в hm..
SergKis пишет: цитата: | в hmg_alert() с bInit можно спокойно добавить |
| Согласен Например, такой блок цитата: | b := {|idx| this.title := 'New title', this.btn_01.caption := "Search", this.btn_02.caption := "Cancel", this.btn_03.caption := "Restore"} |
|
переданный hmg_alert() цитата: | nK := HMG_Alert( cMsg, {"&Поиск","&Отмена", "&Восстановить"}, "Внимание!", Nil, "alert.ico", 64, {YELLOW, RED, GREEN}, b ) |
| поменяет заголовок окна Alert и надписи на всех кнопках
|
|
|
|
| постоянный участник
|
Пост N: 2282
Зарегистрирован: 17.02.12
|
|
Отправлено: 21.03.19 14:21. Заголовок: gfilatov2002 пишет п..
gfilatov2002 пишет цитата: | поменяет заголовок окна Alert и надписи на всех кнопках |
| Если добавить в блок кода This.btn_01.Action := {|| myBtn1() }, This.btn_03.Action := {|| myBtn3() } то выход с окна будет только по кнопке "Cancel\Отмена", а на кнопках 1,3 выполнятся соответствующие функции
|
|
|
|
| постоянный участник
|
Пост N: 6195
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.03.19 17:59. Заголовок: Григорий, ещё одна б..
Григорий, ещё одна бяка в hmg_Alert(). Центрирование строк убрать. Или сделать по параметру SET MSGALERT LABEL TO CENTERALIGN SET MSGALERT LABEL TO RIGHTALIGN SET MSGALERT LABEL TO LEFTALIGN Мне нужно к левому краю прижимать сообщение. И ещё сталкивался с проблемой, что hmg_Alert() остаётся за другими окнами, т.е. нужен флаг - показывать окно поверх всех окон ! Как в MsgInfo() и др.
|
|
|
|
| постоянный участник
|
Пост N: 2283
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.03.19 18:39. Заголовок: Andrey Мы с Григори..
Andrey Мы с Григорием, все время талдычим о bInit, в котором делай как надо с контролами (самим окном0 что хочешь. Ты пропускаешь мимо ушей все. Можешь каждую лабел двигать в любую нужную сторону, не хватает чего добавь на окно.
|
|
|
|
| постоянный участник
|
Пост N: 2284
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.03.19 18:59. Заголовок: PS 1. использовать и..
PS 1. использовать имена лабел b := {|| This.Say_01.Alignment := 'LEFT', This.Say_02.Alignment := 'CENTER', This.Say_03.Alignment := 'RIGHT', ... } 2. режим SET OOP ON из описания в функции SayValueObj(nMode) b := {|| MyInit() } STAT FUNC Myinit() LOCAL ow := ThisWindow.Object LOCAL ao := ow:GetObj4Type('LABEL') LOCAL o FOR EACH o IN ao o:Align := 'LEFT' // все налево или другой вариант NEXT RETURN Nil
|
|
|
|
| постоянный участник
|
Пост N: 2285
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.03.19 19:11. Заголовок: PPS и цвета у лабело..
PPS и цвета у лабелов можешь поменять на другие, отличные от базовых
|
|
|
|
| moderator
|
Пост N: 1474
Зарегистрирован: 11.02.10
|
|
Отправлено: 22.03.19 20:48. Заголовок: Andrey пишет: Мне н..
Andrey пишет: цитата: | Мне нужно к левому краю прижимать сообщение. И ещё сталкивался с проблемой, что hmg_Alert() остаётся за другими окнами, т.е. нужен флаг - показывать окно поверх всех окон |
| Это возможно с помощью использования кодоблока bInit, предложенного Сергеем. Рабочий код ниже _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: 6196
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.03.19 21:24. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Это возможно с помощью использования кодоблока bInit, предложенного Сергеем. |
| Согласен с использованием кодоблока, но тащить такой кодоблок в каждый HMG_Alert() крайне НЕ УДОБНО ! Конечно, можно его в Public объявить и всегда ставить в конце каждого HMG_Alert(). Хотелось бы иметь и альтернативу этому кодоблоку. Кодоблок мне понравился, для индивидуального HMG_Alert() ! Спасибо за него !
|
|
|
Ответов - 194
, стр:
1
2
3
4
5
6
7
8
9
10
All
[только новые]
|
|