On-line: LYSK, гостей 1. Всего: 2 [подробнее..]
АвторСообщение
постоянный участник




Пост 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. )

А по простому нельзя сделать ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 116 , стр: 1 2 3 4 5 6 All [только новые]





Пост N: 2641
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.07.19 15:52. Заголовок: Andrey пишет Как счи..


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 )

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2642
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.07.19 16:26. Заголовок: PS правильно HMG_Get..


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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6342
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.07.19 00:09. Заголовок: Всем привет ! Столкн..


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

У себя конечно сделаю свою обработку, но мало ли где ещё такая бяка вылезет.
А как посчитать сколько строк влезет в HMG_Alert() ?
Не знаю как рассчитывается расстояние между строчками текста в Label в МиниГуи.
Остальное знаю.

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 1521
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 19.07.19 09:56. Заголовок: Andrey пишет: добав..


Andrey пишет:

 цитата:
добавь пожалуйста в эту функцию закрытие этого окна по Alt+F4


Такая возможность уже есть (см. последний параметр в определении функции ниже)

 цитата:
HMG_Alert( cMsg, aOptions, cTitle, nType, xIcon, nSize, aColors, bInit, lClosable )



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2656
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 19.07.19 10:25. Заголовок: gfilatov2002 пишет а..


gfilatov2002 пишет
 цитата:
акая возможность уже есть


В AlertInfo(), AlertYesNo(), ... нет параметра lClosable

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 1522
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 19.07.19 11:29. Заголовок: SergKis пишет: В Al..


SergKis пишет:

 цитата:
В AlertInfo(), AlertYesNo(), ... нет параметра lClosable


Да, верно (этот параметр используется внутри этих функций).

Но Андрей ведь спрашивал о функции HMG_Alert()

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2657
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 19.07.19 11:40. Заголовок: gfilatov2002 пишет Д..


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

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 1543
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 31.07.19 17:18. Заголовок: Andrey пишет: SergK..


Andrey пишет:

 цитата:
SergKis пишет:

 цитата:
Активировать окна в ON RELEASE не разрешено, так вроде переводится.


А почему тогда MsgStop работает нормально ?
Как сделать, чтобы hmg_Alert() тоже заработал в этом режиме ?


Уже сделал: все функции из семейства Alert*() будут работать при ON RELEASE

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6376
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.07.19 18:15. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Уже сделал: все функции из семейства Alert*() будут работать при ON RELEASE



Спасибо !
А как это делается ?

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 1544
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 31.07.19 19:28. Заголовок: Andrey пишет: как э..


Andrey пишет:

 цитата:
как это делается ?


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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6481
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.10.19 19:45. Заголовок: Что то не работает п..


Что то не работает правильно функция HMG_Alert()
Обрезает текст с длинными строчками и не выводит его полностью.

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

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 1608
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 16.10.19 21:13. Заголовок: Andrey пишет: Можно..


Andrey пишет:

 цитата:
Можно исправить эту функцию ?


Благодарю за сообщение
Эта функция будет исправлена для работы с длинными строками в следующей сборке (уже скоро).

P.S. Исправленный вариант функции выслал по почте...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6482
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.10.19 21:52. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
P.S. Исправленный вариант функции выслал по почте...



Что-то не пашет...
Добавил модуль в проект:
# list all files *. p r g 
hmg_Alert2.prg
h_alert.prg

Собирается нормально, а при запуске выдаёт ошибку:
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


Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 1609
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 16.10.19 21:57. Заголовок: Andrey пишет: при з..


Andrey пишет:

 цитата:
при запуске выдаёт ошибку


Да, Вы правы.
Дело в том, что в этой функции использованы новые возможности, которые будут доступны только в следующей сборке.

Тогда нужно немного подождать выхода этой сборки...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6483
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.10.19 21:59. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Тогда нужно немного подождать выхода этой сборки...



Хорошо, тогда ждем !

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 1610
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 16.10.19 22:20. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

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




Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 116 , стр: 1 2 3 4 5 6 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 85
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет