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




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





Пост N: 2286
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.03.19 21:34. Заголовок: Andrey пишет Хотелос..


Andrey пишет
 цитата:
Хотелось бы иметь и альтернативу этому кодоблоку.


Альтернатива - своя функция (библиотека их: AlertYesNo(), ...)
 
FUNC Alert(...)
LOCAL nRet := 2
LOCAL bBlk := ...
nRet := hmg_alert(..., bBlk)
RETURN nRet


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




Пост N: 6197
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.03.19 21:39. Заголовок: SergKis пишет: Альт..


SergKis пишет:

 цитата:
Альтернатива - своя функция (библиотека их: AlertYesNo(), ...)


Ну да. Так тоже можно....
Ждём новую версию тогда...

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




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


gfilatov2002 пишет:

 цитата:
EraseWindow( this.name ), ;


А это для чего нужно ?

gfilatov2002 пишет:

 цитата:
this.say_06.alignment := "left",


Если такой строки не будет - какой будет результат ?

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




Пост N: 1475
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 22.03.19 22:13. Заголовок: Andrey пишет: Если ..


Andrey пишет:

 цитата:
Если такой строки не будет - какой будет результат ?


Врт такой будет экран


Код
   _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 )


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




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


gfilatov2002 пишет:

 цитата:
;// this.say_06.alignment := "left", ;


Не совсем понятно.
Допустим нет в сообщении 6-8 строки вообще.
А сделано так (т.е. по максимому для больших сообщений):
this.say_06.alignment := "left", ;
this.say_07.alignment := "left", ;
this.say_08.alignment := "left", ;
Что тогда будет ? Вылет ?

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



Пост N: 2287
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.03.19 22:26. Заголовок: Andrey У тебя ТВОЙ ..


Andrey
У тебя ТВОЙ массив с текстами, работай от его длины
AEval(aTxt, {|ct,nt| ct := 'Say_'+strzero(nt,2), This.&(ct).Aligment :='Left' })

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




Пост N: 6200
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.03.19 22:37. Заголовок: Понял. Спасибо ! :s..


Понял. Спасибо !

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




Пост N: 6213
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.03.19 18:19. Заголовок: Версия МиниГуи 19.02..


Версия МиниГуи 19.02
Запускаю свою большую программу.
Окно
	DEFINE WINDOW Form_Main ; 
MAIN NOSHOW ;
.....
END WINDOW

// Показ заставки: DEFINE WINDOW PICTURE/DELAY/ ON RELEASE
_DefineSplashWindow( "Form_Splash",,,,, "SPLASH", 10, {|| Addition_MainForms() } )

ACTIVATE WINDOW Form_Splash, Form_Main
...............

В Procedure _SplashDelay() запуск нескольких функций через Eval( hb_macroBlock( M->aRunCheck[nI] ) )

Ставлю в одной из них вот так:
nK := HMG_Alert( cMsg, {"&Перезапуск","&Отмена"}, "Внимание!", Nil, "iExclam64", 64 )
Прога вешается наглухо !!!
Если пытаюсь снять прогу через МЕНЕДЖЕР ЗАДАЧ, то и он сам вешается...
Если меняю сообщение на MsgYesNo( cMsg, "Внимание!", .F. ) - то ВСЁ работает !!!
Почему ? Что ещё нужно HMG_Alert() ?

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



Пост N: 2295
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.03.19 19:49. Заголовок: Andrey У тебя нет о..


Andrey
У тебя нет окна main и не стоит режим работы без main, для hmg_alert нужен окно-родитель
Сделай так примерно
 
DEFINE WINDOW Form_Main ;
MAIN NOSHOW ;
ON INIT _wPost(1) ;
.....
(This.Object):Event( 1, {|| SplasShow() })
END WINDOW

ACTIVATE WINDOW Form_Main
...
STAT FUNC SplashShow()
// здесь окна и запуски ф-й из массива
RETURN Nil


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




Пост N: 6214
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.03.19 20:51. Заголовок: Спасибо ! Буду пробо..


Спасибо ! Буду пробовать !

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




Пост N: 6219
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.03.19 18:00. Заголовок: Всем привет ! Разбир..


Всем привет !
Разбираюсь с новым HMG_Alert()
А как сделать фокус на второй кнопке ?
Вот так не работает:
  bInit  := {|| this.Btn_02.Setfocus }


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



Пост N: 2298
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.03.19 18:05. Заголовок: Andrey Посмотри вни..


Andrey
Посмотри внимательно пример от Григория (выше), думаю, ответ найдешь.

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




Пост N: 6220
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.03.19 18:26. Заголовок: Да, нашёл. _HMG_Moda..


Да, нашёл.
_HMG_ModalDialogReturn := 2
А почему не срабатывает this.Btn_02.Setfocus ?
Или нужно писать
   Domethod(ThisWindow.Name, "Btn_02", "Setfocus")

Хотя попробовал, тоже не срабатывает.

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



Пост N: 2299
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.03.19 18:38. Заголовок: Andrey пишет В исхо..


Andrey пишет [quote]`
В исходнике, ясно написано (если глянешь )
 
IF HB_ISBLOCK( bBlock )

Do_WindowEventProcedure( bBlock, This.Index, 'WINDOW_ACTIVATE' )

ENDIF

oDlg.&( aBut[ iif( Empty( _HMG_ModalDialogReturn ), 1, _HMG_ModalDialogReturn ) ] ).SetFocus()

Т.е. стачала работает блок, потом ...SetFocus
Можешь установить блок кода на ON INIT окна в bInit и там сделать This.Btn_02.SetFocus или на др. контрол, игнорируя _HMG_ModalDialogReturn

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



Пост N: 2300
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.03.19 18:44. Заголовок: PS Возможно, для бол..


PS
Возможно, для большей свободы, строку уст. фокуса можно переставить выше блока

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




Пост N: 6221
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.03.19 18:47. Заголовок: Вылетает теперь прог..


Вылетает теперь программа на HMG_Alert():
Error BASE/1132 Переполнение массива: Неверное количество аргументов
Called from FILLDLG(329) in module: h_alert.prg
Called from (b)HMG_ALERT(150) in module: h_alert.prg
Called from DO_WINDOWEVENTPROCEDURE(82) in module: h_objmisc.prg
Called from _ACTIVATEWINDOW(1314) in module: h_windows.prg
Called from HMG_ALERT(150) in module: h_alert.prg

Строка 329:
   oDlg.&( aBut[ iif( Empty( _HMG_ModalDialogReturn ), 1, _HMG_ModalDialogReturn ) ] ).SetFocus()

При таких условиях: первый вызов
 
_HMG_ModalDialogReturn := 2
nK := HMG_Alert( cMsg, {"&Да ","&Нет"}, ...)

Потом в коде где-то далее делаем простой вызов:
   HMG_Alert( cMsg, {"&Продолжить"}, ...)

Т.е. тогда всегда явно нужно указывать для ОДНОЙ кнопки:
   _HMG_ModalDialogReturn := 1

Что не очень удобно при написании кода.
Причём эту ошибку в отдельном примере не смог сделать.

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



Пост N: 2301
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.03.19 18:53. Заголовок: Andrey На базе hmg_..


Andrey
На базе hmg_alert напиши свои ф-ии, уже говорили выше
AlertOk()
AlertYesNo()
Alert3Btn()
Alert4Btn()
и используй их с уст. _hmg_modaldialogreturn

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



Пост N: 2302
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.03.19 18:56. Заголовок: PS или #xcommand Al..


PS
или
#xcommand AlertOK()...
если не устраивают ф-ии и там все ставь

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




Пост N: 6222
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.03.19 19:06. Заголовок: SergKis пишет: На б..


SergKis пишет:

 цитата:
На базе hmg_alert напиши свои ф-ии, уже говорили выше


Да наверное так и сделаю. Спасибо !

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




Пост N: 1480
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 28.03.19 21:04. Заголовок: SergKis пишет: На б..


SergKis пишет:

 цитата:
На базе hmg_alert напиши свои ф-ии


Благодарю за предложение

Уже добавил в новую бета-сборку такие функции по аналогии с функциями Msg*():

AlertYesNo ( Message, Title, RevertDefault, Icon, nSize, aColors, bInit )
AlertYesNoCancel ( Message, Title, nDefaultButton, Icon, nSize, aColors, bInit )
AlertRetryCancel ( Message, Title, nDefaultButton, Icon, nSize, aColors, bInit )
AlertOkCancel ( Message, Title, nDefaultButton, Icon, nSize, aColors, bInit )
AlertInfo ( Message, Title, Icon, nSize, aColors, bInit )
AlertStop ( Message, Title, Icon, nSize, aColors, bInit )
AlertExclamation ( Message, Title, Icon, nSize, aColors, bInit )


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

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