Форум » GUI » MsgInfo(), MsgStop(), MsgExclamation(), MsgDebug() » Ответить

MsgInfo(), MsgStop(), MsgExclamation(), MsgDebug()

Andrey: Уже скоро 2019 год будет, а эти функции до сих пор неизменны. Экраны большие у пользователей уже давно. Замучили юзера вопросом, а побольше шрифт можно сделать для этих окон ? A то читать приходиться через лупу. Настолько мелкий шрифт в этих сообщениях для больших экранов. Можно ли установить для этих окон при запуске программы РАЗМЕР фонта, ну и до кучи сам фонт ? Типа: [pre2]SET MSGFUNCT FONT TO cFont, nFontSize [/pre2] Как есть команда: [pre2]SET FONT TO cFont, nFontSize [/pre2] Ну и до кучи задать другой размер иконки и картинки: [pre2]SET MSGFUNCT SIZE 256 // или 48, 64, 72, 96, 128 SET MSGINFO SIZE 64 ICO "INFO64.ICO"[/pre2] Тогда за иконку отвечать будет сам программист. Нет иконки в ресурсах, и нет в окошке иконки. И цвета окошек тоже: [pre2]SET MSGINFO BACKCOLOR aDim1 FONTCOLOR aDim2 SET MSGSTOP BACKCOLOR aDim1 FONTCOLOR aDim2 SET MSGEXCL BACKCOLOR aDim1 FONTCOLOR aDim2 SET MSGDEBUG BACKCOLOR aDim1 FONTCOLOR aDim2[/pre2] Если это нельзя сделать для этих функций и не хочется увеличивать размер ресурсов для текущей версии МиниГуи, то хотелось бы иметь дополнительную библиотеку MiniguiExt.lib и файл ресурсов miniguiExt.res Т.е. сделать доп.функции: [pre2]Msg2Info(), Msg2Stop(), Msg2Exclamation(), Msg2Debug() [/pre2] Оставить обычный синтаксис и типа такого: [pre2]SET MSG2FUNCT FONT TO cFont, nFontSize SET MS2GINFO SIZE 64 ICO "INFO64.ICO" Msg2Info( cMsg , "Инфо", ......, cFont, nFontSize, 64, "INFO64.ICO", aDim1, aDim2 )[/pre2] ------------------------------------------------------------------ Надоели танцы с бубнами, чтобы сменить иконку в этих функциях !!! Сначала в ресурсном файле объявить: #define MSGINFO 1005 Потом в prg-модуле нужно ставить: #define MSGINFO 1005 и ещё потом уже где тебе нужно: MsgInfo( cMsg , "Инфо", MSGINFO, .F. ) А по простому нельзя сделать ?

Ответов - 138, стр: 1 2 3 4 5 6 7 All

Andrey: Возвращаюсь опять к HMG_Alert() Юзера жалуются, кнопка узкая, попасть плохо.... Григорий, можно кнопочки по высоте сделать раза в ДВА-ТРИ больше ? Или задавать в доп.параметрах высоту кнопки ? Заодно в параметры добавить передачу цвета кнопки, чтобы различать можно было - юзеру понятней будет. Ну и заодно бы HANDCURSOR на кнопку. Я понимаю, что можно самому сделать свою эту функцию, но стандартную осталось доделать чуть-чуть. Заранее спасибо !

gfilatov2002: Andrey пишет: можно кнопочки по высоте сделать раза в ДВА-ТРИ больше ? Высота кнопок определяется размером шрифта DlgFont. Например, можно определить DEFINE FONT DlgFont FONTNAME "Tahoma" SIZE 18 Andrey пишет: добавить передачу цвета кнопки... HANDCURSOR на кнопку. Эти фичи имеет только ButtonEX, а в функции HMG_Alert() используется обычная кнопка Button для максимального копирования стандартных инфо-функций системы. Andrey пишет: можно самому сделать свою эту функцию Да, это единственный выход

Andrey: Григорий ! А может вы добавите новую тогда функцию HMG_Alert2() с учётом новых пожеланий...


gfilatov2002: Andrey пишет: добавите новую тогда функцию HMG_Alert2() с учётом новых пожеланий Написать такую функцию на основе HMG_Alert() не проблема, но зачем тогда две похожие функции в ядре библиотеки Поэтому я и предложил "самому сделать свою эту функцию"

Andrey: gfilatov2002 пишет: Написать такую функцию на основе HMG_Alert() не проблема, но зачем тогда две похожие функции в ядре библиотеки Ну может тогда оставить и одну функцию, но сделать флаг переключения на другой тип кнопок - BUTTONEX. Как это реализовать, не знаю. Вам видней. Если увеличить высоту шрифта, то сообщение будет ОЧЕНЬ большим. Вот и нужно из за этого отдельное задание высоты кнопок. Юзеру хватает высоты 50-70 пикс. gfilatov2002 пишет: Поэтому я и предложил "самому сделать свою эту функцию" Да я исходник смотрел, куча всего, некоторые моменты вообще не понимаю...

gfilatov2002: Andrey пишет: Как это реализовать, не знаю Понял, постараюсь помочь. Но попрошу подготовить картинку, как должна выглядеть эта функция га экране

Andrey: FUNCTION HMG_Alert( cMsg, aOptions, cTitle, nType, cIcoFile, nIcoSize, nButtonExHeight, aButtonExColor ) где nButtonExHeight - высота кнопки, aButtonExColor - цвета кнопок, например { LGREEN, RED } [pre2] DEFINE FONT DlgFont FONTNAME "Verdana" SIZE 16 nK := HMG_Alert( cMsg, {"&Поиск","&Отмена"}, "Внимание!", Nil, "iExclam64", 64 ) [/pre2] Вот цветные кнопки как на картинке нужно (серые это стандартные кнопки):

SergKis: gfilatov2002 пишет Но попрошу подготовить картинку, как должна выглядеть эта функция га экране Может, достаточно, курсора пр hover, а в параметрах добавить bInit[pre2] FUNCTION HMG_Alert( cMsg, aOptions, cTitle, nType, cIcoFile, nIcoSize, bInit ) ... DEFAULT aOptions TO { "&OK" } DEFAULT bInit TO {|| NIL } ... ACTIVATE WINDOW oDlg ON INIT ( FillDlg( cMsg, aOptions, nLineas, cIcoFile, nIcoSize ), EVal( bInit ) ) ... и меняй, в нем размеры как хочешь. Имена кнопок известны, окна тоже. [/pre2]

Vlad04: Андрей ! У твоих Юзеров явные проблемы со зрением. Тебя тяготит к большим кнопкам, шрифтам и т.п. Юзера жалуются, кнопка узкая, попасть плохо. HMG_Alert( "MessageBox with the Big Font and Icon Size", NIL, NIL, NIL, "demo.ico", 64 ) Смотрится не АЙС. Все дополнительные параметры желательно замыкающими в вызове параметров и без NIL. Если параметр не последний, отделить просто запятой - " , ". Как , к примеру, в Substr(Text,2,4) и Substr(Text,2). В первом случае выделяем 4 символа, во втором - все, начиная со второго. Иначе, подозреваю, что этими функциями будет пользоваться только Андрей.

SergKis: Vlad04 пишет У твоих Юзеров явные проблемы со зрением Вообще то, таких много. И что им не работать ? У нас есть клиентка делает размеры окна, где половина\треть за пределами экрана (механизм Dlu2Pixel). Сидит и по телефону отвечает данным, все видит. когда нет такой необходимости вкл. нормальный режим работы. Иначе, подозреваю, что этими функциями будет пользоваться только Андрей #xtranslate никто не отменял. Можно сделать красивые вызовы на базе hmg_Alert(...) без лишних NIL и запятых

Vlad04: Сейчас в функции HMG_Alert кнопки в зависимости от длины надписей на кнопках НЕ центрируются

SergKis: Vlad04 Андрей, правильно предложил (согласен с ним), кнопки сделать BUTTONEX + HANDCURSOR все остальное можно доделать в bInit. И даже, если не менять, оставить BUTTON, в bInit BUTTON можно убрать и создать BUTTONEX на их месте нужных размеров, ну и размер окна поправить если что.

Vlad04: SergKis Вообще то, таких много. И что им не работать ? Но зачем так, пусть работают. У Windows есть настройки и экрана, и шрифтов и лупа увеличительная. А если думать о масштабируемости элементов, то имеет смысл делать это для всей программы. В 1 с есть такая возможность индивидуально настроить масштаб. А с #xtranslate лучше наоборот- по умолчанию в функции ничего лишнего и #xtranslate нет. А подобные формочки типа Alert я рисую сам как хочу, помещаю в библиотеку и никаких проблем.

gfilatov2002: Andrey пишет: цветные кнопки как на картинке нужно Вот что у меня получилось Вызываю так: [pre2]PROCEDURE MAIN SET WINDOW MAIN OFF DEFINE FONT DlgFont FONTNAME "Verdana" SIZE 16 cMsg := "Первая строка" + CRLF + CRLF + "Вторая строка" + CRLF + Repl( "-._.", 15 ) + CRLF + CRLF + "Четвертая строка" nK := HMG_Alert( cMsg, {"&Поиск","&Отмена"}, "Внимание!", Nil, "alert.ico", 64, {GREEN,RED} ) RETURN [/pre2] P.S. HANDCURSOR тоже не забыл добавить...

SergKis: gfilatov2002 пишет Вот что у меня получилось Если управлять раскраской кнопок, то просится backcolor окна и label как минимум, т.е. еще параметр Еще, Андрей, любит применять gradient ... + текст в две строки ... И скажет завтра Я понимаю, что можно самому сделать свою эту функцию, но стандартную осталось доделать чуть-чуть.

SergKis: Vlad04 пишет У Windows есть настройки и экрана, и шрифтов и лупа увеличительная. На чужих компах (это все), настроишь под себя (если дадут доступ), развалятся чужие проги. Так что про это лучше забыть А если думать о масштабируемости элементов, то имеет смысл делать это для всей программы. В 1 с есть такая возможность индивидуально настроить масштаб. Dlu2Pixel именно так и делает, хотя сделать доп. режим для любого окна никто не мешает. Разговор о hb, а не о 1C. А с #xtranslate лучше наоборот- по умолчанию в функции ничего лишнего и #xtranslate нет. Можно и без #xtranslate, тогда как h_msgbox.prg. Сверху делаем новые AlertOk(), AlertYesNo(), ... , но внутри hmg_Alert() А подобные формочки типа Alert я рисую сам как хочу, помещаю в библиотеку и никаких проблем. Со своими формочками никто не спорит, а с системной hmg_Alert(), выкидывать или модифицировать (закрыв ~50-70% сообщений) ?

Andrey: Vlad04 пишет: У твоих Юзеров явные проблемы со зрением. Тебя тяготит к большим кнопкам, шрифтам и т.п. цитата: Да меня не тяготит, это юзеров моих тяготит. Vlad04 пишет: Смотрится не АЙС. Всё АЙС на больших экранах. Давно уже большие экраны у юзеров, и стонут давно уже. SergKis пишет: Еще, Андрей, любит применять gradient ... + текст в две строки ... Нет, здесь не буду извращаться. Хватит минимального сообщения. SergKis пишет: а с системной hmg_Alert(), выкидывать или модифицировать (закрыв ~50-70% сообщений) Да я все 100% сообщений в программе на эту функцию переделаю и забуду об них. gfilatov2002 пишет: nK := HMG_Alert( cMsg, {"&Поиск","&Отмена"}, "Внимание!", Nil, "alert.ico", 64, {GREEN,RED} ) То что надо ! СПАСИБО !

SergKis: Andrey пишет То что надо ! СПАСИБО ! Что делать, если 3-и кнопки или 4, как покрасить ? nK := HMG_Alert( cMsg, {"&Поиск","&Отмена", "&Восстановить"}, "Внимание!", Nil, "alert.ico", 64, {GREEN,RED} ) Потом, если цвет backcolor окон проходит темой в проге, то вызов окна сообщения выпадает из нее. Не АЙС, как то.

SergKis: gfilatov2002 Можно сделать как в GETBOX STATIC aBackColor, aFontColor + команды для установки и добавить на окно BACKCOLOR aBackColor и для LABEL BACKCOLOR aBackColor FONTCOLOR aFontColor и параметр bInit с вызовом в ON INIT окна Закроются вопросы по hmg_Alert

SergKis: PS LABELam VCENTERALIGN, наверно, добавить лучше. Под bInit понимаю возможность добавить на окно галочки или radio group



полная версия страницы