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


moderator




Пост N: 1469
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 20.03.19 12:14. Заголовок: SergKis пишет: Под ..


SergKis пишет:

 цитата:
Под bInit понимаю возможность добавить на окно галочки или radio group


Да, все это можно сделать
Но ведь у нас есть благодаря Петру системная функция TaskDialog() с подобными возможностями
А hmg_Alert() была задумана как быстрая замена функции Alert() из Клиппера

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




Пост N: 1470
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 20.03.19 12:17. Заголовок: SergKis пишет: Что ..


SergKis пишет:

 цитата:
Что делать, если 3-и кнопки или 4, как покрасить ?
nK := HMG_Alert( cMsg, {"&Поиск","&Отмена", "&Восстановить"}, "Внимание!", Nil, "alert.ico", 64, {GREEN,RED} )


Вот так

Код
   DEFINE FONT DlgFont FONTNAME "Verdana" SIZE 16  

_HMG_ModalDialogReturn := 2

cMsg := "Первая строка;;Вторая строка;" + Repl( "-._.", 15 ) + ";;Четвертая строка"

nK := HMG_Alert( cMsg, {"&Поиск","&Отмена", "&Восстановить"}, "Внимание!", Nil, "alert.ico", 64, {YELLOW, RED, GREEN} )

HMG_Alert( nK )


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



Пост N: 2277
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.03.19 12:31. Заголовок: gfilatov2002 пишет Н..


gfilatov2002 пишет
 цитата:
Но ведь у нас есть благодаря Петру системная функция TaskDialog() с подобными возможностями


Как то не манит ее использовать - сложновато и многовато, смотрел примеры в TaskDialog - работает все ок, но ...

 цитата:
А hmg_Alert() была задумана как быстрая замена функции Alert() из Клиппера


С добавлением icon по размерам + теперь цвета, она вышла за рамки "Alert() из Клиппера"
А простые запросы куда архив откинуть (сервер, флэшка, диск, ...), уточнение по форме печати и похожие остались.
Простые окна запросов постоянно делаются, думаю, hmg_Alert можно использовать вместо, простыми средствами

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


Пост N: 351
Зарегистрирован: 29.05.10
ссылка на сообщение  Отправлено: 20.03.19 12:34. Заголовок: Andrey пишет: Нет, ..


Andrey пишет:

 цитата:
Нет, здесь не буду извращаться. Хватит минимального сообщения.


Минимальные должны быть в ядре. Гргорий очень правильно сказал.Какая проблема сделать окошко с кнопками? Можно добавить ini файлик с настройками; размер,фонт, цвет и т.д
А что бы окошко не "глушило" экран сделайте для текста скроллинг ( горизонтальный или вертикальный ), как в FW
http://forums.fivetechsupport.com/viewtopic.php?f=3&t=18497&sid=1385f5e4cd43192128278e6396b9157e
Окраску кнопок можно сделать трехслойной ( что бы глаза не резала) . Т.е. серые ( или что то нетральное) . При наводке курсора "раскрашивается". При активации вспыхивает ... Если уж изобретаете велосипед, то не делайте его деревянным :)

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



Пост N: 2278
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.03.19 12:43. Заголовок: ММК пишет Гргорий оч..


ММК пишет
 цитата:
Гргорий очень правильно сказал.Какая проблема сделать окошко с кнопками?


Проблем сделать нет (делаются в реале), есть системная ф-я уже ПОЧТИ все делающая, привязывается по установке относительно какого окна центроваться (в своих это надо повторять каждый раз), ЕЕ, СИСТЕМНУЮ, ВЫБРОСИТЬ из использования или чуть поправить, усилив ?

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



Пост N: 2279
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.03.19 12:50. Заголовок: gfilatov2002 пишет В..


gfilatov2002 пишет
 цитата:
Вот так


Это ожидаемо
Осталось фон окна и label.
Помнится, в Клипперной Alert цвет фонта и цвет текстов задавался SET COORом

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



Пост N: 2280
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.03.19 12:51. Заголовок: PS SET COLORом , кон..


PS
SET COLORом , конечно

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




Пост N: 6192
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.03.19 15:25. Заголовок: ММК пишет: Т.е. сер..


ММК пишет:

 цитата:
Т.е. серые ( или что то нетральное) . При наводке курсора "раскрашивается".


Так цветные кнопки просто в качестве примера. На самом деле будет что-то нейтральное.
Бледно красное и бледно зеленое...
А свои кнопки и менюшки можно сделать используя пример Tsb_Menu05.7z https://cloud.mail.ru/public/35pf/NqnpzXCSi
Григорий, я тебе его высылал.

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




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


SergKis пишет:

 цитата:
Осталось фон окна и label.
Помнится, в Клипперной Alert цвет фонта и цвет текстов задавался SET COORом


Ну да, может до кучи сделать изменение фона окна.
Ну тогда хотелось бы через внешний глобальный параметр, типа:
SET MSGALERT BACKCOLOR YELLOW
SET MSGALERT LABELCOLOR BLUE

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




Пост N: 1471
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 20.03.19 17:10. Заголовок: Andrey пишет: сдела..


Andrey пишет:

 цитата:
сделать изменение фона окна.
Ну тогда хотелось бы через внешний глобальный параметр, типа:
SET MSGALERT BACKCOLOR YELLOW
SET MSGALERT LABELCOLOR BLUE


Cделал, конечно

Код ниже
   DEFINE FONT DlgFont FONTNAME "Verdana" SIZE 16  

_HMG_ModalDialogReturn := 2

cMsg := "Первая строка;;Вторая строка;" + Repl( "-._.", 15 ) + ";;Четвертая строка"

SET MSGALERT BACKCOLOR TO {240, 240, 240}
SET MSGALERT FONTCOLOR TO NAVY

nK := HMG_Alert( cMsg, {"&Поиск","&Отмена", "&Восстановить"}, "Внимание!", Nil, "alert.ico", 64, {YELLOW, RED, GREEN} )
P.S. Прозрачность для иконки задана, но выглядит немного коряво...

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




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


gfilatov2002 пишет:

 цитата:
P.S. Прозрачность для иконки задана, но выглядит немного коряво...



Пойдёт ! То что надо ! Спасибо !

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



Пост N: 2281
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 21.03.19 11:31. Заголовок: gfilatov2002 пишет Н..


gfilatov2002 пишет
 цитата:
Но ведь у нас есть благодаря Петру системная функция TaskDialog() с подобными возможностями


Еще раз посмотрел примеры, класс TaskDialog.
Совершенно не ясно как управлять расцветкой (свойствами) контролов, как добавить на окно tsb таблицу, как применить фонты из DEFINE FONT ...?
Да и сама hmg_Alert() не сделана на TaskDialog, а на стандартных командах hmg.
А в hmg_alert() с bInit можно спокойно добавить тсб таблицу, если надо, скрыть IMAGE, если не подобрать по сочетанию с backcolor, ... и др. штучки с окном\контролами проделать.

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




Пост N: 1473
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 21.03.19 13:32. Заголовок: SergKis пишет: в hm..


SergKis пишет:

 цитата:
в hmg_alert() с bInit можно спокойно добавить


Согласен
Например, такой блок

 цитата:
b := {|idx| this.title := 'New title', this.btn_01.caption := "Search", this.btn_02.caption := "Cancel", this.btn_03.caption := "Restore"}

переданный hmg_alert()

 цитата:
nK := HMG_Alert( cMsg, {"&Поиск","&Отмена", "&Восстановить"}, "Внимание!", Nil, "alert.ico", 64, {YELLOW, RED, GREEN}, b )


поменяет заголовок окна Alert и надписи на всех кнопках

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



Пост N: 2282
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 21.03.19 14:21. Заголовок: gfilatov2002 пишет п..


gfilatov2002 пишет
 цитата:
поменяет заголовок окна Alert и надписи на всех кнопках


Если добавить в блок кода
This.btn_01.Action := {|| myBtn1() }, This.btn_03.Action := {|| myBtn3() }
то выход с окна будет только по кнопке "Cancel\Отмена", а на кнопках 1,3 выполнятся соответствующие функции

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




Пост N: 6195
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.03.19 17:59. Заголовок: Григорий, ещё одна б..


Григорий, ещё одна бяка в hmg_Alert().
Центрирование строк убрать.
Или сделать по параметру
SET MSGALERT LABEL TO CENTERALIGN
SET MSGALERT LABEL TO RIGHTALIGN
SET MSGALERT LABEL TO LEFTALIGN

Мне нужно к левому краю прижимать сообщение.

И ещё сталкивался с проблемой, что hmg_Alert() остаётся за другими окнами,
т.е. нужен флаг - показывать окно поверх всех окон !
Как в MsgInfo() и др.

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



Пост N: 2283
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.03.19 18:39. Заголовок: Andrey Мы с Григори..


Andrey
Мы с Григорием, все время талдычим о bInit, в котором делай как надо с контролами (самим окном0 что хочешь.
Ты пропускаешь мимо ушей все.
Можешь каждую лабел двигать в любую нужную сторону, не хватает чего добавь на окно.

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



Пост N: 2284
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.03.19 18:59. Заголовок: PS 1. использовать и..


PS
1. использовать имена лабел
b := {|| This.Say_01.Alignment := 'LEFT', This.Say_02.Alignment := 'CENTER', This.Say_03.Alignment := 'RIGHT', ... }

2. режим SET OOP ON из описания в функции SayValueObj(nMode)
 
b := {|| MyInit() }
STAT FUNC Myinit()
LOCAL ow := ThisWindow.Object
LOCAL ao := ow:GetObj4Type('LABEL')
LOCAL o
FOR EACH o IN ao
o:Align := 'LEFT' // все налево или другой вариант
NEXT
RETURN Nil


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



Пост N: 2285
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.03.19 19:11. Заголовок: PPS и цвета у лабело..


PPS
и цвета у лабелов можешь поменять на другие, отличные от базовых

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




Пост N: 1474
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 22.03.19 20:48. Заголовок: Andrey пишет: Мне н..


Andrey пишет:

 цитата:
Мне нужно к левому краю прижимать сообщение.

И ещё сталкивался с проблемой, что hmg_Alert() остаётся за другими окнами,
т.е. нужен флаг - показывать окно поверх всех окон


Это возможно с помощью использования кодоблока bInit, предложенного Сергеем.
Рабочий код ниже
   _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: 6196
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.03.19 21:24. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Это возможно с помощью использования кодоблока bInit, предложенного Сергеем.



Согласен с использованием кодоблока, но тащить такой кодоблок в каждый HMG_Alert() крайне НЕ УДОБНО !
Конечно, можно его в Public объявить и всегда ставить в конце каждого HMG_Alert().
Хотелось бы иметь и альтернативу этому кодоблоку.

Кодоблок мне понравился, для индивидуального HMG_Alert() ! Спасибо за него !

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