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


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




Пост N: 4095
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.03.22 15:23. Заголовок: Andrey пишет Хочется..


Andrey пишет
 цитата:
Хочется иметь стандартную ПРОСТУЮ функцию, остальные требуют отдельного подключения к проектам.


WaitWindow(...) получилась такая Скрытый текст


Пример использования Скрытый текст


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




Пост N: 2023
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 09.03.22 20:23. Заголовок: SergKis пишет: Wait..


SergKis пишет:

 цитата:
WaitWindow(...)


Принято
Благодарю за помощь

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




Пост N: 7234
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.03.22 08:08. Заголовок: Что то не работает ф..


Что то не работает фон окна и вообще оно пропадает !
   cForm := WaitWindow( "... Запуск программы ...;"+cNam, .T., 700, nSize, YELLOW, RED ) 


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




Пост N: 2024
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.03.22 09:42. Заголовок: Andrey пишет: вообщ..


Andrey пишет:

 цитата:
вообще оно пропадает


А если записать так:


 цитата:
cForm := WaitWindow( "... Запуск программы ...;"+cNam, .T., 700, nSize, NIL, YELLOW, RED )



Кстати, выложил "тихое" обновление с учетом предложенных изменений для функции WaitWindow().

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




Пост N: 7236
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.03.22 09:57. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
А если записать так:


Как всегда, слона cFont и не заметил. Спасибо !

Добавил в h_windows.prg вот так:
         IF hb_osIsWin10() 
SetProperty( cFormName, "Height", GetProperty( cFormName, "Height" ) + 7 )
SetProperty( cFormName, "BackColor", nRGB2Arr( GetSysColor( COLOR_WINDOW ) ) )
ENDIF

IF hb_IsArray(aBackColor)
SetProperty( cFormName, "BackColor", aBackColor )
ENDIF

Ну не видят юзера серый цвет, от слова СОВСЕМ НЕ ВИДЯТ.
БОЛЬШАЯ просьба добавить это в исходник.
А как убрать беленькую полоску в титуле окна ?


Вот есть такое - https://docs.microsoft.com/ru-ru/windows/apps/develop/title-bar?tabs=wasdk
И ещё - https://translated.turbopages.org/proxy_u/en-ru.ru.740f60a8-6229ca4d-aa890b0b-74722d776562/https/stackoverflow.com/questions/70446389/how-to-recolor-windows-forms-title-bar-c-sharp

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




Пост N: 4097
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.03.22 13:50. Заголовок: gfilatov2002 Нельзя..


gfilatov2002
Нельзя сделать ширину окна > 800, это, наверно, неправильно, т.е. задать
 
LOCAL cNam := hb_FNameName( hb_ProgName() )
LOCAL cForm, nSize := 16
LOCAL nW := GetDesktopWidth() * 0.95

// Первый тест - строка
cForm := WaitWindow( "... Запуск программы ...;"+hb_ProgName(), .T., nW, nSize, NIL, YELLOW, BLUE )

Предлагаю правку
 
...
LOCAL lWidth := ( nWidth == NIL )
...
nHeight := GetTextHeight ( NIL, "A", hFont )

IF lWidth
nWidth := GetTextWidth( NIL, cTmp, hFont ) + nX * 2
nWidth := Min( 2 * nWidth, 800 )
ELSEIF Empty( nWidth ) .or. nWidth < 0
nWidth := GetTextWidth( NIL, cTmp+Replicate("A", 5), hFont ) + nX * 2
ENDIF

DeleteObject( hFont )

nHeight += 8

IF lNoWait
_HMG_IsModalActive := .F.
DEFINE WINDOW _HMG_CHILDWAITWINDOW CHILD
ELSE
DEFINE WINDOW _HMG_CHILDWAITWINDOW MODAL
ENDIF

//SetProperty( cFormName, "Width", Min( 2 * nWidth, Min( GetDesktopWidth(), 800 ) ) )
SetProperty( cFormName, "Width", Min( GetDesktopWidth(), nWidth ) )

SetProperty( cFormName, "Height", nHeight * nK + nY * 2 + GetBorderHeight() )

SetProperty( cFormName, "Title", "" )
SetProperty( cFormName, "TitleBar", .F. )
SetProperty( cFormName, "SysMenu", .F. )

IF hb_osIsWin10()
SetProperty( cFormName, "Height", GetProperty( cFormName, "Height" ) + 7 )
SetProperty( cFormName, "BackColor", nRGB2Arr( GetSysColor( COLOR_WINDOW ) ) )
ENDIF

IF HB_ISARRAY( aBackColor )
SetProperty( cFormName, "BackColor", aBackColor )
ENDIF

nW := GetProperty( cFormName, "ClientWidth" ) - nX * 2
...

тогда проходят варианты
LOCAL nW := GetDesktopWidth() * 0.95

cForm := WaitWindow( "... Запуск программы ...;"+hb_ProgName(), .T., nW, nSize, NIL, YELLOW, BLUE )
и
cForm := WaitWindow( "... Запуск программы ...;"+hb_ProgName(), .T., 0, nSize, NIL, YELLOW, BLUE )
расчет от текста ширины окна

Возможно, надо добавить вариант Андрея с заголовком окна, т.е. совсем без него
DEFINE WINDOW ... CHILD ... NOSIZE NOSYSMENU NOCAPTION ...
и
DEFINE WINDOW ... MODAL ... NOSIZE NOSYSMENU NOCAPTION ...

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




Пост N: 7238
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.03.22 13:59. Заголовок: Я уже попробовал. Не..


Я уже попробовал. Не особо красиво, текст прилипает к вверху окна. Нужно делать отступ от верха окна.
И нет теней для окна на Win10, и окантовки нет. Может на других ОС будет красиво, но я не могу пока проверить это.

Взял тихое обновление Григория и облом с моим примером, серый фон и блеклые жёлтые буквы на нём.
Нужно делать так:
         IF hb_osIsWin10() 
SetProperty( cFormName, "Height", GetProperty( cFormName, "Height" ) + 7 )
SetProperty( cFormName, "BackColor", nRGB2Arr( GetSysColor( COLOR_WINDOW ) ) )
//ELSEIF HB_ISARRAY( aBackColor )
// SetProperty( cFormName, "BackColor", aBackColor )

ENDIF
IF HB_ISARRAY( aBackColor )
SetProperty( cFormName, "BackColor", aBackColor )
ENDIF

Свой пример выкладываю - https://cloud.mail.ru/public/FVpn/Bh6MHPvKU

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




Пост N: 4098
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.03.22 20:04. Заголовок: Andrey пишет Я уже п..


Andrey пишет
 цитата:
Я уже попробовал. Не особо красиво, текст прилипает к вверху окна. Нужно делать отступ от верха окна.


Вот что получилось у меня WaitWindow(...) Скрытый текст

Пример Скрытый текст


 цитата:
И нет теней для окна на Win10, и окантовки нет


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

PS
CLIENTAREA Min( GetDesktopWidth(), nWidth ), nHeight * nK + nY * 2
Вместо GetDesktopWidth() можно исп. GetDesktopRealWidth()

PS2
 
IF hb_osIsWin10()
SetProperty( cFormName, "Height", GetProperty( cFormName, "Height" ) /*+ 7*/ )

Выделенное цветом, по мне лишнее, т.е. эту строку можно убрать

Пример и h_windows.prg со всеми исправлениями WaitWindow() https://TransFiles.ru/sczh6

PS
Пример с заголовком окна https://TransFiles.ru/o6uph
В h_windows.prg добавил правку
 
IF lNoWait
_HMG_IsModalActive := .F.
IF lNoCapt
DEFINE WINDOW _HMG_CHILDWAITWINDOW CHILD CLIENTAREA nW, nH NOSIZE NOSYSMENU NOCAPTION
ELSE
nH -= GetTitleHeight()

DEFINE WINDOW _HMG_CHILDWAITWINDOW CHILD CLIENTAREA nW, nH
ENDIF
ELSE
IF lNoCapt
DEFINE WINDOW _HMG_CHILDWAITWINDOW MODAL CLIENTAREA nW, nH NOSIZE NOSYSMENU NOCAPTION
ELSE
nH -= GetTitleHeight()

DEFINE WINDOW _HMG_CHILDWAITWINDOW MODAL CLIENTAREA nW, nH
ENDIF
ENDIF


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




Пост N: 4099
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.03.22 11:03. Заголовок: Andrey пишет окантов..


Andrey пишет
 цитата:
окантовки нет


Вариант окантовки (добавка в h_windows.prg из последнего архива пред поста)
 
FUNCTION WaitWindow ( cMessage, lNoWait, nWidth, nSize, cFont, aFontColor, aBackColor, lNoCapt, aPenColor, nPen )
...
NEXT

IF HB_ISARRAY( aPenColor )
nPen := iif( Empty( nPen ), 2, nPen )
nI := nPen - 1
nY := nX := nI
nH := ThisWindow.ClientHeight - nI
nW := ThisWindow.ClientWidth - nI
DrawRect( cFormName, nY, nX, nH, nW, aPenColor, nPen )
ENDIF

IF lWidth .AND. GetProperty( cFormName, "Width" ) < 2 * nWidth
SetProperty( cFormName, "Message", "Value", "" )
_DefineTimer( "Timer", cFormName, 100, {|| EfeitoLabel( cMessage[ 1 ] ) } )
ENDIF
...

Пример Скрытый текст


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




Пост N: 7239
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.03.22 15:28. Заголовок: Круто ! То что надо ..


Круто ! То что надо для юзера ! Спасибо БОЛЬШОЕ !
Пошёл переделывать проги.

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




Пост N: 4100
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.03.22 17:58. Заголовок: Andrey пишет Пошёл п..


Andrey пишет
 цитата:
Пошёл переделывать проги.


Еще пример с добавленным ProgressBar к строкам массива Скрытый текст


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




Пост N: 4101
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.03.22 21:34. Заголовок: PS Пример с изменени..


PS
Пример с изменением размера окна для ProgressBar оставляет снизу лишнюю полоску.
Лучше применить др. методу замены элемента массива для размещения ProgressBar
Пример Скрытый текст


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




Пост N: 4102
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.03.22 13:34. Заголовок: Не знаю, актуально и..


Не знаю, актуально или уже нет, WaitWindow(...) такая вышла Скрытый текст


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




Пост N: 7240
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.03.22 15:29. Заголовок: SergKis пишет: Не з..


SergKis пишет:

 цитата:
Не знаю, актуально или уже нет, WaitWindow(...) такая вышла


Конечно актуально !
Классно получилось !
Григорий, ждем исправленную функцию в библиотеке.

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