Форум » GUI » MsgInfo(), MsgStop(), MsgExclamation(), MsgDebug() » Ответить

MsgInfo(), MsgStop(), MsgExclamation(), MsgDebug()

Andrey: Уже скоро 2019 год будет, а эти функции до сих пор неизменны. Экраны большие у пользователей уже давно. Замучили юзера вопросом, а побольше шрифт можно сделать для этих окон ? A то читать приходиться через лупу. Настолько мелкий шрифт в этих сообщениях для больших экранов. Можно ли установить для этих окон при запуске программы РАЗМЕР фонта, ну и до кучи сам фонт ? Типа: [pre2]SET MSGFUNCT FONT TO cFont, nFontSize [/pre2] Как есть команда: [pre2]SET FONT TO cFont, nFontSize [/pre2] Ну и до кучи задать другой размер иконки и картинки: [pre2]SET MSGFUNCT SIZE 256 // или 48, 64, 72, 96, 128 SET MSGINFO SIZE 64 ICO "INFO64.ICO"[/pre2] Тогда за иконку отвечать будет сам программист. Нет иконки в ресурсах, и нет в окошке иконки. И цвета окошек тоже: [pre2]SET MSGINFO BACKCOLOR aDim1 FONTCOLOR aDim2 SET MSGSTOP BACKCOLOR aDim1 FONTCOLOR aDim2 SET MSGEXCL BACKCOLOR aDim1 FONTCOLOR aDim2 SET MSGDEBUG BACKCOLOR aDim1 FONTCOLOR aDim2[/pre2] Если это нельзя сделать для этих функций и не хочется увеличивать размер ресурсов для текущей версии МиниГуи, то хотелось бы иметь дополнительную библиотеку MiniguiExt.lib и файл ресурсов miniguiExt.res Т.е. сделать доп.функции: [pre2]Msg2Info(), Msg2Stop(), Msg2Exclamation(), Msg2Debug() [/pre2] Оставить обычный синтаксис и типа такого: [pre2]SET MSG2FUNCT FONT TO cFont, nFontSize SET MS2GINFO SIZE 64 ICO "INFO64.ICO" Msg2Info( cMsg , "Инфо", ......, cFont, nFontSize, 64, "INFO64.ICO", aDim1, aDim2 )[/pre2] ------------------------------------------------------------------ Надоели танцы с бубнами, чтобы сменить иконку в этих функциях !!! Сначала в ресурсном файле объявить: #define MSGINFO 1005 Потом в prg-модуле нужно ставить: #define MSGINFO 1005 и ещё потом уже где тебе нужно: MsgInfo( cMsg , "Инфо", MSGINFO, .F. ) А по простому нельзя сделать ?

Ответов - 194, стр: 1 2 3 4 5 6 7 8 9 10 All

SergKis: Andrey пишет Как считать какая обработка была назначена на клавишу ? Можно ее считать, а потом восстановить ? Надо написать ф-ии, к примеру : 1. aKey := SaveHotkeyAll() - получить все назначения на окно 'HOTKEY' тип контрола (HMG_GetControls() функцией) - пробежать по полученному массиву и сохранить в своем данные, см. h_hotkey.prg _DefineHotKey (...) массив назначения _HMG_aControlType [k] := "HOTKEY" _HMG_aControlNames [k] := '' _HMG_aControlHandles [k] := 0 _HMG_aControlParentHandles [k] := nParentForm _HMG_aControlIds [k] := nId _HMG_aControlProcedures [k] := bAction _HMG_aControlPageMap [k] := nMod _HMG_aControlValue [k] := nKey ... - выполнить для полученного массива _ReleaseHotKey ( cParentForm, nMod , nKey ) 2. RestHotkeyAll(aKey) - по массиву aKey выполнить _DefineHotKey ( cParentForm , nMod , nKey , bAction )

SergKis: PS правильно HMG_GetFormControls ( cFormName, cUserType ), вместо HMG_GetControls()

Andrey: Всем привет ! Столкнулся с переполнением в HMG_Alert(). Т.е. если слишком много строк текста, то окно становиться посередине экрана и нет кнопки закрыть. Задачу приходиться снимать. Григорий, добавь пожалуйста в эту функцию закрытие этого окна по Alt+F4 ! MsgStop() закрывается по этой клавише. У себя конечно сделаю свою обработку, но мало ли где ещё такая бяка вылезет. А как посчитать сколько строк влезет в HMG_Alert() ? Не знаю как рассчитывается расстояние между строчками текста в Label в МиниГуи. Остальное знаю.


gfilatov2002: Andrey пишет: добавь пожалуйста в эту функцию закрытие этого окна по Alt+F4 Такая возможность уже есть (см. последний параметр в определении функции ниже) HMG_Alert( cMsg, aOptions, cTitle, nType, xIcon, nSize, aColors, bInit, lClosable )

SergKis: gfilatov2002 пишет акая возможность уже есть В AlertInfo(), AlertYesNo(), ... нет параметра lClosable

gfilatov2002: SergKis пишет: В AlertInfo(), AlertYesNo(), ... нет параметра lClosable Да, верно (этот параметр используется внутри этих функций). Но Андрей ведь спрашивал о функции HMG_Alert()

SergKis: gfilatov2002 пишет Да, верно (этот параметр используется внутри этих функций). FUNCTION HMG_Alert( cMsg, aOptions, cTitle, nType, cIcoFile, nIcoSize, aBtnColors, bInit, lClosable ) ... DEFAULT cTitle TO "Attention", aOptions TO { "&OK" }, lClosable TO .F. ... STATIC FUNCTION _Alert( cMsg, aOptions, cTitle, nType, nDefault, xIcon, nSize, aColors, lTopMost, bInit, lClosable ) В этой ф-ии желательно сделать DEFAULT lClosable TO .T. тогда Alert... функции будут похожи на Msg... функции - выход по Esc, Alt+F4

gfilatov2002: Andrey пишет: SergKis пишет:  цитата: Активировать окна в ON RELEASE не разрешено, так вроде переводится. А почему тогда MsgStop работает нормально ? Как сделать, чтобы hmg_Alert() тоже заработал в этом режиме ? Уже сделал: все функции из семейства Alert*() будут работать при ON RELEASE

Andrey: gfilatov2002 пишет: Уже сделал: все функции из семейства Alert*() будут работать при ON RELEASE Спасибо ! А как это делается ?

gfilatov2002: Andrey пишет: как это делается ? Эта возможность будет доступна в следующей сборке (если таковая выйдет в будущем)

Andrey: Что то не работает правильно функция HMG_Alert() Обрезает текст с длинными строчками и не выводит его полностью. Проект высылал на почту. Кстати и в примере ButtonEx_DynamicMenu(1).7z который высылал ранее, функция MsgInfo(cText,'Menu Array') показывает правильно весь текст, а HMG_Alert(ToDimText(aBtn), , 'Menu Array') - обрезает текст. Можно исправить эту функцию ?

gfilatov2002: Andrey пишет: Можно исправить эту функцию ? Благодарю за сообщение Эта функция будет исправлена для работы с длинными строками в следующей сборке (уже скоро). P.S. Исправленный вариант функции выслал по почте...

Andrey: gfilatov2002 пишет: P.S. Исправленный вариант функции выслал по почте... Что-то не пашет... Добавил модуль в проект: [pre2]# list all files *. p r g hmg_Alert2.prg h_alert.prg[/pre2] Собирается нормально, а при запуске выдаёт ошибку: [pre2]Error BASE/1449 Синтаксическая ошибка: & --------------------------------- Stack Trace --------------------------------- Called from _DEFINEMODALWINDOW(655) in module: h_windows.prg Called from HMG_ALERT(164) in module: h_alert.prg Called from MAIN(34) in module: hmg_Alert2.prg [/pre2]

gfilatov2002: Andrey пишет: при запуске выдаёт ошибку Да, Вы правы. Дело в том, что в этой функции использованы новые возможности, которые будут доступны только в следующей сборке. Тогда нужно немного подождать выхода этой сборки...

Andrey: gfilatov2002 пишет: Тогда нужно немного подождать выхода этой сборки... Хорошо, тогда ждем !

gfilatov2002: gfilatov2002 пишет: в этой функции использованы новые возможности

Andrey: Новая версия МиниГуи - 19.10 (Update 2) Что не все окна при использовании функции HMG_Alert() делаются по центру экрана. У меня стали некоторые окна HMG_Alert() показываться в левом верхнем углу экрана. Почему ? Как сделать что бы окна HMG_Alert() были всегда по центру экрана ? У меня принудительно главное меню скидывается на панель задач, когда нужно. Может быть из-за этого ?

Andrey: Всем привет ! А как сделать окно HMG_Alert() поверх всех окон ? Что то по старому перестало работать...

SergKis: Попробуй _HMG_InplaceParentHandle := ThisWindow.Handle hmg_Alert(...)

Andrey: Что то после перехода на последню версию МиниГуи, программа стала падать на HMG_Alert() Вот такая ошибка: [pre2]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(149) in module: Source\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 [/pre2] Вот мой код: [pre2] cIcoRes := "Help64" ; nIcoSize := 64 aButton := {"&Продолжить","&Отмена"} " _HMG_ModalDialogReturn := 2 bInit := {|| this.topmost := .t. ,; this.Btn_01.Fontcolor := BLACK ,; this.Btn_02.Fontcolor := BLACK } nK := HMG_Alert( cMsg, aButton, cTitle, NIL, cIcoRes, nIcoSize, aButColor, bInit ) // строка 166 [/pre2] Почему ? Чего перестало хватать ?



полная версия страницы