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


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


Пост N: 1477
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 11.10.18 17:35. Заголовок: Напиши свою функцию ..


Напиши свою функцию да и всё.

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




Пост N: 6070
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.10.18 18:04. Заголовок: PSP пишет: Напиши с..


PSP пишет:

 цитата:
Напиши свою функцию да и всё.


Да я уже пробовал, не особо красиво получается...
Тем более я думаю это не только у меня такие придирчивые пользователи.
Расширение функционала МиниГуи тоже большой плюс.

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




Пост N: 3807
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.10.18 08:00. Заголовок: Так это обертка для ..


Так это обертка для функции winapi
В winapi нет такого функционала. Чтобы его получить, надо делать другую реализацию.
Думается, что многие пользователи захотят использовать именно стандартные средства winapi, так что лучше это сделать отдельными функциями.
Ну а что там такого военного ? Модальное окно с текстом и кнопками, больше ничего.

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




Пост N: 1371
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.10.18 09:33. Заголовок: Pasha пишет: Модаль..


Pasha пишет:

 цитата:
Модальное окно с текстом и кнопками


Тем более, что в ядре библиотеки уже есть Клиппер-совместимая по синтаксису и Вин7-10 подобная по виду функция

 цитата:
HMG_Alert( cText, [<aOptions>], [<cTitle>], [<nType>] )


Пример использования см. в папке \samples\Basic\WALERT_2

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




Пост N: 6073
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.10.18 19:18. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Пример использования см. в папке \samples\Basic\WALERT_2



А можно в эту функцию добавить ещё один параметр, отвечающий за иконку из ресурсов ?
Было бы здорово !
И размеры фонта как можно регулировать для этой функции ?
Если нет возможности, то можно ещё добавить параметр фонта ?

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




Пост N: 1377
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 23.10.18 14:49. Заголовок: Andrey пишет: разме..


Andrey пишет:

 цитата:
размеры фонта как можно регулировать для этой функции ?


После изменений, предложенных Сергеем, это будет возможно, если определить свой шрифт DlgFont до вызова функции HMG_Alert()
Такое изменение шрифта будет доступно в следующей сборке библиотеки

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



Пост N: 2097
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 23.10.18 15:07. Заголовок: Andrey пишет А можно..


Andrey пишет
 цитата:
А можно в эту функцию добавить ещё один параметр, отвечающий за иконку из ресурсов ?

 
1.
В MiniGui\RESORCES есть файлы ico с именами aIcon := { "ALERT", "QUESTION", "INFO", "STOP" }, замени их своими.
2.
FUNCTION HMG_Alert( cMsg, aOptions, cTitle, nType, cIcoFile )
LOCAL aIcon := { "ALERT", "QUESTION", "INFO", "STOP" }
// LOCAL cIcoFile

LOCAL nLineas
...
AEval( aIcon, {|x, i| aIcon[ i ] := "ZZZ_B_" + x } )

DEFAULT cIcoFile := aIcon[ nType ]

IF ! _IsControlDefined( "DlgFont", "Main" )
...

Иконки должны быть 32x32, так зашито в окно

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




Пост N: 1379
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 23.10.18 16:52. Заголовок: SergKis пишет: FUNC..


SergKis пишет:

 цитата:
FUNCTION HMG_Alert( cMsg, aOptions, cTitle, nType, cIcoFile )


Добавил новый параметр в эту функцию.
Спасибо за помощь

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




Пост N: 6076
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.10.18 20:14. Заголовок: SergKis пишет: Икон..


SergKis пишет:

 цитата:
Иконки должны быть 32x32, так зашито в окно


Ну что за невезуха, хотелось бы размер иконок 48 или 64х64 хотя бы.

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



Пост N: 2100
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 23.10.18 20:48. Заголовок: Andrey пишет Ну что ..


Andrey пишет
 цитата:
Ну что за невезуха


Так текст ф-ии есть, поправь, отладку сделай на разные размеры.
Кто мешает ?

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




Пост N: 1380
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 23.10.18 22:06. Заголовок: Andrey пишет: разме..


Andrey пишет:

 цитата:
размер иконок 48 или 64х64 хотя бы


Добавил в функцию еще один параметр nIcoSize.

Пример вызова:

 цитата:
DEFINE FONT DlgFont FONTNAME "Tahoma" SIZE 18
HMG_Alert( "MessageBox with user's defined Font and Icon", NIL, "Warning", NIL, "demo.ico", 64 )
RELEASE FONT DlgFont



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




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


gfilatov2002 пишет:

 цитата:
Добавил в функцию еще один параметр nIcoSize.


Ура !
Спасибо большое !

Т.е. если мне всегда нужен постоянный размер фонта в HMG_Alert(), я в MAIN определяю
DEFINE FONT DlgFont FONTNAME "Tahoma" SIZE 18
и больше нигде не забочусь об этом ? Правильно ?

DlgFont - у меня больше ни где не присутствует.

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




Пост N: 1381
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 24.10.18 15:07. Заголовок: Andrey пишет: я в M..


Andrey пишет:

 цитата:
я в MAIN определяю
DEFINE FONT DlgFont FONTNAME "Tahoma" SIZE 18
и больше нигде не забочусь об этом ?


Да, теперь так можно сделать...

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




Пост N: 6078
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.10.18 19:27. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Да, теперь так можно сделать...



Спасибо !
Жду с нетерпением новую версию !

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




Пост N: 1382
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 24.10.18 20:10. Заголовок: Andrey пишет: Жду с..


Andrey пишет:

 цитата:
Жду с нетерпением новую версию


Осталось потерпеть всего одну неделю

Кстати, мой тестовый пример для проверки этой функции
#include "hmg.ch" 

ANNOUNCE RDDSYS

PROCEDURE MAIN

SET WINDOW MAIN OFF

DEFINE FONT DlgFont FONTNAME "Tahoma" SIZE 12

HMG_Alert( "MessageBox Stop", NIL, "Stop!", ICON_STOP )

HMG_Alert( "MessageBox Alert", NIL, "Alert" )

HMG_Alert( "MessageBox with the user's defined Font and Icon", NIL, "Warning", NIL, "demo.ico" )

RELEASE FONT DlgFont

DEFINE FONT DlgFont FONTNAME "Verdana" SIZE 18

HMG_Alert( "MessageBox with the Big Font and Icon Size", NIL, NIL, NIL, "demo.ico", 64 )

HMG_Alert( ;
HMG_Alert( "Test Question;Second Line", {"&Yes","&No","Con&tinue","&Cancel"}, "Please, Select", NIL, "demo.ico", 64 ), ;
3 /* timeout in the seconds */, "Information", ICON_INFORMATION )

RETURN
работает нормально

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





Пост N: 63
Зарегистрирован: 18.06.15
ссылка на сообщение  Отправлено: 25.10.18 07:36. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
работает нормально





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




Пост N: 1383
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 25.10.18 09:37. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
работает нормально


gfilatov2002 пишет:

 цитата:
Осталось потерпеть всего одну неделю




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




Пост N: 6102
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.10.18 13:25. Заголовок: gfilatov2002 Можно ..


gfilatov2002
Можно кнопочки по высоте сдела раза в ТРИ больше ?
Пока юзер по кнопке попадёт, выслушаешь о себе много чего....
И ему без разницы, что я пишу на готовой системе, главное чтобы он по кнопке попадал.
Ну и заодно бы смену фона выбранной кнопки сделать, всего несколько строк:
 
NOHOTLIGHT NOXPSTYLE HANDCURSOR ;
ON MOUSEHOVER ( This.Backcolor := BLACK , This.Fontcolor := YELLOW ) ;
ON MOUSELEAVE ( This.Backcolor := ???? , This.Fontcolor := ????? ) ;


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




Пост N: 6103
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.10.18 16:39. Заголовок: Перешёл на новую вер..


Перешёл на новую версию МиниГуи.
Теперь пример Tsb_menu слетает вот на этой строке:
   DEFINE FONT DlgFont FONTNAME "Tahoma" SIZE 12 

Первый раз срабатывает, на второй раз, вот такая ошибка:
Error MGERROR/0 Font: DlgFont Of Main Already defined. Program terminated.
Called from MSGMINIGUIERROR(99) in module: h_error.prg
Called from _DEFINEFONT(61) in module: h_font.prg
Called from RUN_TEST1(570) in module: Tsb_menu.prg

Почему до этого работало, а сейчас нет ?
Я знаю как исключить эту ошибку, но просто понять почему это происходит.

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


Пост N: 1392
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 31.10.18 18:21. Заголовок: Andrey пишет: Почем..


Andrey пишет:

 цитата:
Почему до этого работало, а сейчас нет ?


Видимо новая версия более строга к ошибкам разработчика , Григорий ее постоянно оптимизирует , заставляя внимательнее писать код.
Что само по себе радует.
Andrey пишет:

 цитата:
Я знаю как исключить эту ошибку, но просто понять почему это происходит.


Тебе помогли твой же косяк найти Не ясно как он бы аукнулся в дальнейшем.

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




Пост N: 6187
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.03.19 13:54. Заголовок: Возвращаюсь опять к ..


Возвращаюсь опять к HMG_Alert()
Юзера жалуются, кнопка узкая, попасть плохо....

Григорий, можно кнопочки по высоте сделать раза в ДВА-ТРИ больше ?
Или задавать в доп.параметрах высоту кнопки ?

Заодно в параметры добавить передачу цвета кнопки, чтобы различать можно было - юзеру понятней будет.
Ну и заодно бы HANDCURSOR на кнопку.

Я понимаю, что можно самому сделать свою эту функцию, но стандартную осталось доделать чуть-чуть.
Заранее спасибо !

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




Пост N: 1465
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 19.03.19 15:42. Заголовок: Andrey пишет: можно..


Andrey пишет:

 цитата:
можно кнопочки по высоте сделать раза в ДВА-ТРИ больше ?


Высота кнопок определяется размером шрифта DlgFont.
Например, можно определить

 цитата:
DEFINE FONT DlgFont FONTNAME "Tahoma" SIZE 18



Andrey пишет:

 цитата:
добавить передачу цвета кнопки...
HANDCURSOR на кнопку.


Эти фичи имеет только ButtonEX, а в функции HMG_Alert() используется обычная кнопка Button
для максимального копирования стандартных инфо-функций системы.

Andrey пишет:

 цитата:
можно самому сделать свою эту функцию


Да, это единственный выход

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




Пост N: 6188
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.03.19 15:57. Заголовок: Григорий ! А может в..


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

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




Пост N: 1466
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 19.03.19 16:44. Заголовок: Andrey пишет: добав..


Andrey пишет:

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


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

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




Пост N: 6189
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.03.19 17:27. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Написать такую функцию на основе HMG_Alert() не проблема, но зачем тогда две похожие функции в ядре библиотеки


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

gfilatov2002 пишет:

 цитата:
Поэтому я и предложил "самому сделать свою эту функцию"


Да я исходник смотрел, куча всего, некоторые моменты вообще не понимаю...

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




Пост N: 1467
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 19.03.19 17:51. Заголовок: Andrey пишет: Как э..


Andrey пишет:

 цитата:
Как это реализовать, не знаю


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

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




Пост N: 6190
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.03.19 18:22. Заголовок: FUNCTION HMG_Alert( ..


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

Вот цветные кнопки как на картинке нужно (серые это стандартные кнопки):


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



Пост N: 2269
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 19.03.19 18:22. Заголовок: gfilatov2002 пишет Н..


gfilatov2002 пишет
 цитата:
Но попрошу подготовить картинку, как должна выглядеть эта функция га экране


Может, достаточно, курсора пр hover, а в параметрах добавить bInit
 
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 ) )
...
и меняй, в нем размеры как хочешь. Имена кнопок известны, окна тоже.



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


Пост N: 815
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 19.03.19 18:32. Заголовок: Андрей ! У твоих Юзе..


Андрей ! У твоих Юзеров явные проблемы со зрением. Тебя тяготит к большим кнопкам, шрифтам и т.п.

 цитата:
Юзера жалуются, кнопка узкая, попасть плохо.





 цитата:
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 символа, во втором - все, начиная со второго.
Иначе, подозреваю, что этими функциями будет пользоваться только Андрей.

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



Пост N: 2270
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 19.03.19 18:48. Заголовок: Vlad04 пишет У твоих..


Vlad04 пишет
 цитата:
У твоих Юзеров явные проблемы со зрением


Вообще то, таких много. И что им не работать ?
У нас есть клиентка делает размеры окна, где половина\треть за пределами экрана (механизм Dlu2Pixel).
Сидит и по телефону отвечает данным, все видит. когда нет такой необходимости вкл. нормальный режим работы.

 цитата:
Иначе, подозреваю, что этими функциями будет пользоваться только Андрей


#xtranslate никто не отменял. Можно сделать красивые вызовы на базе hmg_Alert(...) без лишних NIL и запятых

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


Пост N: 816
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 19.03.19 18:59. Заголовок: Сейчас в функции HMG..


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

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



Пост N: 2271
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 19.03.19 19:09. Заголовок: Vlad04 Андрей, прав..


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

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


Пост N: 817
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 19.03.19 21:10. Заголовок: SergKis Вообще то, ..


SergKis

 цитата:
Вообще то, таких много. И что им не работать ?


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

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




Пост N: 1468
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 19.03.19 21:21. Заголовок: Andrey пишет: цветн..


Andrey пишет:

 цитата:
цветные кнопки как на картинке нужно


Вот что у меня получилось

Вызываю так:
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

P.S. HANDCURSOR тоже не забыл добавить...

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



Пост N: 2272
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 19.03.19 21:47. Заголовок: gfilatov2002 пишет В..


gfilatov2002 пишет
 цитата:
Вот что у меня получилось


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



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



Пост N: 2273
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 19.03.19 22:04. Заголовок: Vlad04 пишет У Windo..


Vlad04 пишет
 цитата:
У Windows есть настройки и экрана, и шрифтов и лупа увеличительная.


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

 цитата:
А если думать о масштабируемости элементов, то имеет смысл делать это для всей программы.
В 1 с есть такая возможность индивидуально настроить масштаб.


Dlu2Pixel именно так и делает, хотя сделать доп. режим для любого окна никто не мешает.
Разговор о hb, а не о 1C.

 цитата:
А с #xtranslate лучше наоборот- по умолчанию в функции ничего лишнего и #xtranslate нет.


Можно и без #xtranslate, тогда как h_msgbox.prg. Сверху делаем новые AlertOk(), AlertYesNo(), ... , но внутри hmg_Alert()

 цитата:
А подобные формочки типа Alert я рисую сам как хочу, помещаю в библиотеку и никаких проблем.


Со своими формочками никто не спорит, а с системной hmg_Alert(), выкидывать или модифицировать (закрыв ~50-70% сообщений) ?

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




Пост N: 6191
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.03.19 03:05. Заголовок: Vlad04 пишет: У тво..


Vlad04 пишет:

 цитата:
У твоих Юзеров явные проблемы со зрением. Тебя тяготит к большим кнопкам, шрифтам и т.п. цитата:


Да меня не тяготит, это юзеров моих тяготит.

Vlad04 пишет:

 цитата:
Смотрится не АЙС.


Всё АЙС на больших экранах. Давно уже большие экраны у юзеров, и стонут давно уже.

SergKis пишет:

 цитата:
Еще, Андрей, любит применять gradient ... + текст в две строки ...


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

SergKis пишет:

 цитата:
а с системной hmg_Alert(), выкидывать или модифицировать (закрыв ~50-70% сообщений)


Да я все 100% сообщений в программе на эту функцию переделаю и забуду об них.

gfilatov2002 пишет:

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


То что надо ! СПАСИБО !

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



Пост N: 2274
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.03.19 09:02. Заголовок: Andrey пишет То что ..


Andrey пишет
 цитата:
То что надо ! СПАСИБО !


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

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



Пост N: 2275
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.03.19 11:07. Заголовок: gfilatov2002 Можно с..


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

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



Пост N: 2276
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.03.19 11:44. Заголовок: PS LABELam VCENTERAL..


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

Спасибо: 0 
ПрофильЦитата Ответить
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 
ПрофильЦитата Ответить



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

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