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




Пост 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 
ПрофильЦитата Ответить
Ответов - 194 , стр: 1 2 3 4 5 6 7 8 9 10 All [только новые]


постоянный участник




Пост N: 6769
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.07.20 16:31. Заголовок: Нашёл при каком вари..


Нашёл при каком варианте сбоит:
      aColors := _SetMsgAlertColors( {189, 30, 73} ) 
SET MSGALERT FONTCOLOR TO YELLOW
IF !AlertYesNo( cMsg, "Выбор действия" , , "iCancel64x1", 64 , {RED,LGREEN} )
SET MSGALERT BACKCOLOR TO aColors
SET MSGALERT FONTCOLOR TO BLACK

RETURN NIL
ENDIF
SET MSGALERT BACKCOLOR TO aColors
SET MSGALERT FONTCOLOR TO BLACK

Повторный вызов любого AlertXXXX - будет сваливаться ...
Кодировать неудобно (зеленым цветом дублирующий код), цвет КРАСНЫЙ окна делаешь для юзера, чтобы впечатлился.
Предлагал же заталкивать цвет фона окна и цвет текста сообщения - параметром последним в этой функции.
Почему ломается код при использовании _SetMsgAlertColors() ?

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




Пост N: 3290
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.07.20 17:37. Заголовок: Andrey Глянь исходн..


Andrey
Глянь исходник
*-----------------------------------------------------------------------------* 
FUNCTION _SetMsgAlertColors( aBackClr, aFontClr )
*-----------------------------------------------------------------------------*
LOCAL aOldClrs := { aBackColor, aFontColor }

IF aBackClr != NIL
aBackColor := aBackClr
ENDIF

IF aFontClr != NIL
aFontColor := aFontClr
ENDIF

RETURN aOldClrs

и что ты проделываешь aColors := _SetMsgAlertColors( {189, 30, 73} ) и
SET MSGALERT BACKCOLOR TO aColors
SET MSGALERT FONTCOLOR TO BLACK
как говорится, "найдите разницу" ?

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




Пост N: 6771
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.07.20 10:36. Заголовок: SergKis пишет: как ..


SergKis пишет:

 цитата:
как говорится, "найдите разницу" ?


Опять заработался я...
Спасибо за подсказку !
Оказывается можно и так делать:
 
SET MSGALERT BACKCOLOR TO {189, 30, 73} STOREIN aColors
SET MSGALERT FONTCOLOR TO YELLOW

IF !AlertYesNo( cMsg2, "Выбор действия" )
SET MSGALERT BACKCOLOR TO aColors[1]
SET MSGALERT FONTCOLOR TO aColors[2]
RETURN NIL
ENDIF

SET MSGALERT BACKCOLOR TO aColors[1]
SET MSGALERT FONTCOLOR TO aColors[2]


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





Пост N: 263
Зарегистрирован: 05.11.05
ссылка на сообщение  Отправлено: 01.08.20 15:48. Заголовок: А в AlertYesNo() зву..


А в AlertYesNo() звука нет? Если в других подобных функциях есть звук и возможность его отключения, мне кажется было бы логично везде это сделать.

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




Пост N: 3303
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 01.08.20 16:43. Заголовок: rvu пишет было бы ло..


rvu пишет
 цитата:
было бы логично везде это сделать.


По мне, звук вообще отключить (у клиента орет и все шарахаются, т.к. после виде всегда громкость стоит).
Звук есть только в ф-ях
1. AlertExclamation() - PlayExclamation()
2. AlertInfo() - PlayAsterisk()
3. AlertStop() - PlayHand()
Добавить звук в ф-ии легко, в AlertYesNo( Message, Title, RevertDefault, Icon, nSize, aColors, lTopMost, bInit )
ltkftnt bInit := {|| PlayHand() } или bInit := {|| TONE(3600) }

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





Пост N: 264
Зарегистрирован: 05.11.05
ссылка на сообщение  Отправлено: 01.08.20 18:25. Заголовок: SergKis пишет: По м..


SergKis пишет:

 цитата:
По мне, звук вообще отключить



Я по умолчанию отключаю. Но вдруг кому нравится.

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





Пост N: 310
Зарегистрирован: 05.11.05
ссылка на сообщение  Отправлено: 11.03.21 11:11. Заголовок: В программе выставле..


В программе выставлена кодировка 1251.

AlertYesNo() пишет: Да, Нет.
AlertRetryCancel: Retry, Cancel.

Наверное, где-то не включили нужные слова в русскую локализацию. Или так и задумано?

А можно вообще свои слова вставлять в эти функции? Было бы удобно.

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




Пост N: 3600
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.03.21 11:32. Заголовок: rvu проверьте, что д..


rvu проверьте, что дает после SET LANGUAGE TO RUSSIAN
? _HMG_LANG_ID
если не "RU", то
_HMG_LANG_ID := "RU" ; InitMessages() // см. h_init.prg
+
 
*-----------------------------------------------------------------------------*
FUNCTION AlertOkCancel ( Message, Title, nDefaultButton, Icon, nSize, aColors, lTopMost, bInit )
*-----------------------------------------------------------------------------*
LOCAL aOptions := { _HMG_BRWLangButton [4], _HMG_BRWLangButton [3] } // можете поменять на свои тексты

RETURN ( _Alert( Message, aOptions, Title, , hb_defaultValue( nDefaultButton, 1 ), Icon, nSize, aColors, lTopMost, bInit, .T. ) == IDOK )


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





Пост N: 311
Зарегистрирован: 05.11.05
ссылка на сообщение  Отправлено: 11.03.21 11:47. Заголовок: SergKis пишет: пров..


SergKis пишет:

 цитата:
проверьте, что дает после SET LANGUAGE TO RUSSIAN
? _HMG_LANG_ID
если не "RU"



Не "RU". Интересно, а почему?

То _HMG_LANG_ID := "RU" ; InitMessages() - Теперь "RU". Но AlertRetryCancel все равно: Retry, Cancel.

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




Пост N: 3601
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.03.21 12:38. Заголовок: rvu смотрите InitMe..


rvu
смотрите InitMessage(), сначала ставятся en тексты, потом от _HMG_LANG_ID == "RU", возможно не все переведено
делайте
t1 := _HMG_BRWLangButton [4]
t2 := _HMG_BRWLangButton [3]
_HMG_BRWLangButton [4] := "текст 1"
_HMG_BRWLangButton [3] := "текст 1"
AlertYsNo(...)
_HMG_BRWLangButton [4] := t1
_HMG_BRWLangButton [3] := t2
или замените не устраивающие тексты в _HMG_... массивах на нужные (свою Ru_InitMessages() заведите)
напишите свою, Андрей написал и использует вездеСкрытый текст


 цитата:
Если хочешь сделать что-то хорошо, сделай это сам



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





Пост N: 312
Зарегистрирован: 05.11.05
ссылка на сообщение  Отправлено: 11.03.21 13:18. Заголовок: SergKis пишет: Если..


SergKis пишет:

 цитата:
Если хочешь сделать что-то хорошо, сделай это сам



В идеале — да, но всё самому сделать невозможно. За советы спасибо!

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




Пост N: 7229
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.03.22 14:06. Заголовок: Последняя версия Мин..


Последняя версия МиниГуи. Система Win10 !
При вызове вот этой функции:
WaitWindow( 'Загрузка программы ... ' + GetExeFileName(), .T. )   

Получаю окно без надписи ! Пустое окно ! Как у меня было на Win8.1
Почему ?
Если сделать WaitWindow( 'Загрузка программы ... ', .T. ) то надпись есть.
А как сделать надпись в 2-3 строчки ?

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




Пост N: 4091
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.03.22 22:04. Заголовок: Andrey пишет Получаю..


Andrey пишет
 цитата:
Получаю окно без надписи ! Пустое окно ! Как у меня было на Win8.1
Почему ?
Если сделать WaitWindow( 'Загрузка программы ... ', .T. ) то надпись есть.


Ширина окна ставится
SetProperty( cFormName, "Width", Min( 2 * nWidth, Min( GetDesktopWidth(), 800 ) ) )
Если текст шириной больше ширины окна, то вкл. timer прокрутки текста в label
Наверно, тут не клеится с ним и прокруткой. Если текст короткий, то все работает как надо.

 цитата:
А как сделать надпись в 2-3 строчки ?


Как то так. Пример Скрытый текст


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




Пост N: 4092
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 05.03.22 15:48. Заголовок: Поправил ф-ю WaitWin..


Поправил ф-ю WaitWindow() Скрытый текст


Пример Скрытый текст


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




Пост N: 2021
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 06.03.22 10:06. Заголовок: SergKis пишет: Попр..


SergKis пишет:

 цитата:
Поправил ф-ю WaitWindow()


Ok

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




Пост N: 7230
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.03.22 12:21. Заголовок: SergKis пишет: Попр..


SergKis пишет:

 цитата:
Поправил ф-ю WaitWindow()


А сразу туда нельзя добавить несколько строк для разделителя ";" или CRLF ?
Несколько добавочных строк и можно будет не делать свою отдельную функцию.
Плюс к этому добавить ещё 2 параметра
       WaitWindow ( cMessage, lNoWait, nWidth, nSize, cFont, aBackColor, aFontColor ) 

И будет законченное решение.

Я конечно сам могу себе сделать свою функцию, но хочется иметь готовую стандартную функцию, где это всё уже есть.

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




Пост N: 4093
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.03.22 13:05. Заголовок: Andrey пишет Я конеч..


Andrey пишет
 цитата:
Я конечно сам могу себе сделать свою функцию, но хочется иметь готовую стандартную функцию, где это всё уже есть.


Можно сделать. Надо перенести код из примера ToWaitWindow(...) в WaitWindow(). Даже была мысль такая, но надо для массива иметь доступ к ф-ям расчета от dlu, для "правильных" пропорций размеров от фонта, а для этого нужен set oop on. Другие расчеты размеров, по мне, не очень подходят и саму ф-ю надо сильно переписать.
Не знаю, надо ли ?

PS
По поводу aBackColor, aFontColor
cWWname := WaitWindow(...)
SetProperty(cWWname, "Message", "FontColor", aFontColor )
SetProperty(cWWname, "Message", "BackColor", aBackColor )
Если надо. Это вполне можно на #xcommand вынести
А есть еще свойства фонта BOLD, ITALIC ..., как с ними быть ..., т.е. ограничения есть, все в ф-ю WaitWindow(...) не засунешь
Можно и параметры в ф-ю добавить, но для однострочного вывода, по мне, это не так актуально, но сделать просто, добавив в
@ nY, nX LABEL Message ;
...
BACKCOLOR aBackColor FONTCOLOR aFontColor

PS2
Имея cWWname можно на окно ProgressBar добавлять самостоятельно, по аналогии с примером выше и "двигать" его, а не счетчик

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




Пост N: 7231
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.03.22 19:37. Заголовок: WaitWindow ( cMessag..


WaitWindow ( cMessage, lNoWait, nWidth, nSize, cFont, aBackColor, aFontColor ) 

Высоту строк считать просто от параметра nSize, остальное BOLD, ITALIC не нужно.

SergKis пишет:

 цитата:
Можно и параметры в ф-ю добавить, но для однострочного вывода, по мне, это не так актуально, но сделать просто, добавив в
@ nY, nX LABEL Message ... ;
BACKCOLOR aBackColor FONTCOLOR aFontColor


Сделай пожалуйста правильно, а то я опять сделаю и Григорию не понравиться !
Хочется иметь стандартную ПРОСТУЮ функцию, остальные требуют отдельного подключения к проектам.

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




Пост N: 4094
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.03.22 20:53. Заголовок: Andrey пишет Высоту ..


Andrey пишет
 цитата:
Высоту строк считать просто от параметра nSize,


Приемлемо на 11', 14' (что под рукой) отображение идет от nSize := 10 до nSize := 18, при выводе массива или одной строки. За пределами этого - искажения отображения. Это при условии, что в WaitWindow(...) сделал правку высоты
Default nHeight := nSize + 14
вместо
Default nHeight := nSize + 8
Если такой вариант использования устраивает, то можно сделать вывод строки и массива в WaitWindow(...) с указанными параметрами.

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




Пост N: 7232
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.03.22 21:56. Заголовок: SergKis пишет: Если..


SergKis пишет:

 цитата:
Если такой вариант использования устраивает, то можно сделать вывод строки и массива в WaitWindow(...) с указанными параметрами.


Да, устраивает !

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

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