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




Пост 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: 2967
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.11.19 01:00. Заголовок: Andrey пишет Btn_01 ..


Andrey пишет
 цитата:
Btn_01 Of Form_CardOpl Not defined.


На окне Form_CardOpl timer есть ?
Если есть, его (все timer работающие) надо отключать, когда, что то делаешь и вкл. когда закончил.

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




Пост N: 6532
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.11.19 10:47. Заголовок: SergKis пишет: На о..


SergKis пишет:

 цитата:
На окне Form_CardOpl timer есть ?


Нет у него таймера.
У меня и в других окнах так же вылетает.

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




Пост N: 2968
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.11.19 12:27. Заголовок: Andrey пишет Нет у н..


Andrey пишет
 цитата:
Нет у него таймера.
У меня и в других окнах так же вылетает.


Проверить не могу, не стоит bcc 5.8, но по тексту имя окна hmg_alert() "oDlg"
 
LOCAL cForm := "oDlg"

IF _IsWindowDefined( cForm )
nLineas := 0
WHILE _IsWindowDefined( cForm := "oDlg" + hb_ntos( ++nLineas ) )
END
ENDIF
...
DEFINE WINDOW (cForm) WIDTH 0 HEIGHT 0 TITLE cTitle MODAL NOSIZE BACKCOLOR aBackColor ;
ON INTERACTIVECLOSE ( lPressButton .OR. lClosable ) ;
ON RELEASE iif( !lPressButton .AND. lClosable, _HMG_ModalDialogReturn := 0, NIL )

FillDlg( cMsg, aOptions, nLineas, cIcoFile, nIcoSize, aBtnColors, bInit, lClosable, cFontName ) // тут снятие

END WINDOW
...
добавь в
bInit := {|| _logfile(.t., This.Name), this.topmost := .t. ,;
this.Btn_01.Fontcolor := BLACK ,;
this.Btn_02.Fontcolor := BLACK }
какое имя окна ?


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




Пост N: 6533
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.11.19 14:15. Заголовок: SergKis пишет: како..


SergKis пишет:

 цитата:
какое имя окна ?


Код:
    Function MG_YESNO(...) 
.....
? ProcNameLine() + "--1-----------------------"

bInit := {|| _logfile(.t., This.Name), this.topmost := .t. ,;
this.Btn_01.Fontcolor := BLACK ,;
this.Btn_02.Fontcolor := BLACK } // строка 166

? ProcNameLine() + "--2-----------------------" // строка 168
nK := HMG_Alert( cMsg, aButton, cTitle, NIL, cIcoRes, nIcoSize, aButColor, bInit ) // строка 169

Лог-файл:
Вызов из: MG_YESNO(162) --> util_Alert.prg--1-----------------------	 
Вызов из: MG_YESNO(168) --> util_Alert.prg--2-----------------------
Form_CardOpl

Вылет по ошибке:
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(166) in module: 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
Called from MG_YESNO(169) in module: util_Alert.prg


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




Пост N: 2971
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.11.19 14:23. Заголовок: Andrey А если так S..


Andrey
А если так
 
SET OOP ON
...
bInit := {|ow| _logfile(.t., This.Name, ow:Name), this.topmost := .t. ,;
this.Btn_01.Fontcolor := BLACK ,;
this.Btn_02.Fontcolor := BLACK }




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




Пост N: 2972
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.11.19 14:44. Заголовок: PS Что покажет ?..


PS
Что покажет
? ProcNameLine() + "--2-----------------------", ThisWindow.Name // строка 168

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




Пост N: 6534
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.11.19 14:50. Заголовок: SergKis пишет: А ес..


SergKis пишет:

 цитата:
А если так


Вылет:
 
Error BASE/1004 Метод не экспортирован: NAME
--------------------------------- Stack Trace ---------------------------------
Called from NAME(0)
Called from (b)MG_YESNO(166) in module: 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

SergKis пишет:

 цитата:
Что покажет


Вызов из: MG_YESNO(162) --> util_Alert.prg--1-----------------------	 
Вызов из: MG_YESNO(168) --> util_Alert.prg--2----------------------- Form_CardOpl


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




Пост N: 2973
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.11.19 15:02. Заголовок: Andrey Error BASE/1..


Andrey

 цитата:
Error BASE/1004 Метод не экспортирован: NAME


Извини, это в моей версии передается объект окна, а тут нет такого.
Хотел проверить создание окна oDlg было ли ?
Если было то фокус должен был быть на нем и this среда его.
Похоже окно hmg_alert не создано, т.к. this среда осталась от предыдущего окна.
Пробни
 
bInit := {|| _logfile(.t., This.Name, _IsWindowDefined('oDlg')), this.topmost := .t. ,;
this.Btn_01.Fontcolor := BLACK ,;
this.Btn_02.Fontcolor := BLACK } // строка 166


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




Пост N: 6535
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.11.19 15:03. Заголовок: Поставил вызов этой ..


Поставил вызов этой функции (без ow:Name) в главной форме, всё отлично работает. Вот лог:
Вызов из: TEST(524) --> 11main.prg--0-----------------------	 
Вызов из: MG_YESNO(162) --> util_Alert.prg--1-----------------------
Вызов из: MG_YESNO(168) --> util_Alert.prg--2----------------------- Form_Main
oDlg .T.


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




Пост N: 2974
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.11.19 15:14. Заголовок: А на родном месте ? ..


А на родном месте ?
на маин не так интересно, т.к. окон мало

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




Пост N: 6536
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.11.19 15:17. Заголовок: SergKis пишет: Проб..


SergKis пишет:

 цитата:
Пробни


Вызов из: TEST(524) --> 11main.prg--0-----------------------	 
Вызов из: MG_YESNO(162) --> util_Alert.prg--1-----------------------
Вызов из: MG_YESNO(168) --> util_Alert.prg--2----------------------- Form_Main
oDlg .T. .T.
Вызов из: MG_YESNO(162) --> util_Alert.prg--1-----------------------
Вызов из: MG_YESNO(168) --> util_Alert.prg--2----------------------- Form_CardOpl
Form_CardOpl .T.

Получается на главной форме (Form_Main) работает, а в нужном окне нет. Почему ?
На главной форме таймер сидит. У меня в рабочей программе 3 таймера используются, без них никак !
Отключил таймер.
Всё равно такая же ошибка !
Раньше стояла функция MsgYesNo() - решил переделать на свою и облом, то работает, то нет.

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




Пост N: 2975
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.11.19 15:33. Заголовок: Andrey пишет Всё рав..


Andrey пишет
 цитата:
Всё равно такая же ошибка !


Если таймеры отключены, то трассируй h_alert.prg на предмет значения ThisWindow.name в
*-----------------------------------------------------------------------------*
STATIC FUNCTION FillDlg( cMsg, aOptions, nLineas, cIcoFile, nIcoSize, aBtnColors, bBlock, lClosable, cFont )
*-----------------------------------------------------------------------------*
...

 цитата:
На главной форме таймер сидит. У меня в рабочей программе 3 таймера используются, без них никак !


По мне, без глобальных таймеров обходиться можно (он может нарушить this среду если не управлять его вкл.\выкл.).
Просто распределяешь работу таймера на смену режимов\окон\событий клавы и мыши ...
Таимер тек. окна то же может нарушить this среду, без упр. вкл.\выкл., если работает блок кода для контрола, кнопки например - это надо учитывать делая останов\пуск таймера

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




Пост N: 6537
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.11.19 15:37. Заголовок: Andrey пишет: Отклю..


Andrey пишет:

 цитата:
Отключил таймер.
Всё равно такая же ошибка !


Дело не в таймере !

Раньше стояла функция MsgYesNo() - решил переделать на свою через HMG_ALERT() и облом, то работает, то нет.

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




Пост N: 2976
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.11.19 15:43. Заголовок: Andrey пишет решил п..


Andrey пишет
 цитата:
решил переделать на свою через HMG_ALERT() и облом, то работает, то нет.


Так потестируй h_alert.prg _logfile(...), раз у тебя вылезло в данном месте стабильное сваливание, найди причину, пересобирая либу

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




Пост N: 2977
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.11.19 15:48. Заголовок: Andrey пишет Дело не..


Andrey пишет
 цитата:
Дело не в таймере !


Если у тебя глобальные таймеры и ты ими не жестко управляешь, то могут быть бяки при работе с This средой.
Возможно, надо отказаться в таком случае от нее и оперировать факт. именами окон и контролов всегда.
Только это хотел сказать про таймер и this среду

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




Пост N: 6538
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.11.19 16:10. Заголовок: Пробовал в других ме..


Пробовал в других местах вызов HMG_ALERT(), работает.
Как вызываю из таблицы свою карточку (окно Form_CardOpl), вот там вылетает...
Обычное окно, по базе ищет что нужно. Мистика какая то ...

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




Пост N: 2978
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.11.19 16:18. Заголовок: Andrey пишет Как выз..


Andrey пишет
 цитата:
Как вызываю из таблицы свою карточку (окно Form_CardOpl), вот там вылетает...


Обвесь _logfile(...) как писал выше в h_alert.prg, посмотри, что даст log
У бери NOSHOW при создании окна и снова посмотри.
Понятнее будет с мистикой ...

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




Пост N: 6539
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.11.19 16:58. Заголовок: Забодался искать. Сд..


У меня 2 окна скрываются, т.е. делаю DoMethod( сForm, "Hide" ) два раза, чтобы окон много не было.
Может из-за этого, но по другому нельзя.
Забодался искать. Сделал так:
   bInit := {|| _logfile(.t., This.Name, _IsWindowDefined('oDlg')) ,; 
SetProperty("oDlg", "Topmost", .t. ) ,;
SetProperty("oDlg", "Btn_01", "Fontcolor", BLACK ) ,;
SetProperty("oDlg", "Btn_02", "Fontcolor", BLACK ) }

Надеюсь теперь ВСЕГДА будут работать !

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




Пост N: 6614
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.04.20 23:15. Заголовок: Всем привет ! Возвра..


Всем привет !
Возвращаюсь опять к функции HMG_ALERT().
Если очень много строк передаю в эту функцию (а это часто бывает) , то беда с этим окном !
Верх и низ окна просто УЛЕТАЮТ за границу экрана.
Вот примерно выглядит так это:


Юзера в шоке, я тоже. Кнопки закрыть и выйти нет !
Писать ещё свою функцию нет резона, хотелось бы одну стандартную.
Т.е. достаточно было бы проверить в HMG_ALERT() выход за границы экрана и уменьшить их..
А сам текст хотелось бы "затолкать" в объект EDITBOX в режиме READONLY
Вот так примерно чтобы выглядело:


Такое решение было бы просто отличным для многих !
Заранее спасибо !

Проект для пробы выкладываю - https://cloud.mail.ru/public/g3VA%2Fi87fBERHx

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




Пост N: 3937
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 14.04.20 08:02. Заголовок: Юзера в шоке, я тоже..



 цитата:
Юзера в шоке, я тоже. Кнопки закрыть и выйти нет



Я в подобном случае проверяю количество строк, и при превышении некоторого значения вместо alert формирую окно с бровсом и кнопками

Спасибо: 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 час. Хитов сегодня: 563
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет