Автор | Сообщение |
|
| |
Пост N: 5760
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.06.16 21:20. Заголовок: [?] Простой вопрос
Есть главное окно программы , в нем живут несколько CHILD окон (не MDI). В процедуре ON INTERACTIVECLOSE главного окна есть блок кода , если он вернет TRUE тогда закроется главное окно и программа завершится. А вот если блок кода вернул FALSE , то как вернуть фокус ввода на окно на котором был фокус ввода до нажатия крестика главного окна ?
|
|
|
Ответов - 151
, стр:
1
2
3
4
5
6
7
8
All
[только новые]
|
|
|
| |
Пост N: 5831
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.06.16 11:20. Заголовок: SergKis пишет: там..
SergKis пишет: цитата: | там не активное основное окно, поверх лежит модал окно NOSIZE NOMINIMIZE NOMAXMIZE |
| Все верно и оно затемнено (основное) , вот так и мне надо бы. Или как тут http://windowstips.ru/notes/4507 но затемнить нужно конкретное окно
|
|
|
|
| постоянный участник
|
Пост N: 1059
Зарегистрирован: 17.02.12
|
|
Отправлено: 30.06.16 11:36. Заголовок: Dima для начала кла..
Dima для начала клади модал окно поверх, отладив, занимайся сменой цветов в основном
|
|
|
|
| |
Пост N: 5832
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.06.16 11:48. Заголовок: SergKis пишет: для ..
SergKis пишет: цитата: | для начала клади модал окно поверх |
| положил , но окно (не главное) из которого его вызвал хотел затемнить , вот и все. могу сделать его прозрачным , но это не то , нужно затемнение.
|
|
|
|
| постоянный участник
|
Пост N: 1060
Зарегистрирован: 17.02.12
|
|
Отправлено: 30.06.16 11:58. Заголовок: Dima пишет нужно зат..
Dima пишет таких алгоритмов в минигуи не видел
|
|
|
|
| |
Пост N: 5833
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.06.16 12:25. Заголовок: SergKis пишет: аких..
SergKis пишет: цитата: | аких алгоритмов в минигуи не видел |
| есть не что похожее C:\MiniGUI\SAMPLES\Advanced\BosTaurus\Demo5 При запуске сразу идем в меню и давим любой пункт , вылазит MsgInfo а окно за ним становится серым. Попробовал переделать Grayness_effect_start и Grayness_effect_end подавая на вход имя своего окна , не пашет однако.
|
|
|
|
| |
Пост N: 1023
Зарегистрирован: 20.02.11
|
|
Отправлено: 30.06.16 12:55. Заголовок: Это не то. Пример за..
Это не то. Пример затемняет только фон окна. все контролы на окне остаются как были. Попробуй пробежаться по свойсьву BackColor окна и ВСЕХ его контролов.
|
|
|
|
| moderator
|
Пост N: 957
Зарегистрирован: 11.02.10
|
|
Отправлено: 30.06.16 14:08. Заголовок: Haz пишет: Попробуй..
Haz пишет: цитата: | Попробуй пробежаться по свойству BackColor окна и ВСЕХ его контролов. |
| Эти две фукции могут в этом деле помочь /******************************************************************************/ Procedure ChangeAllBackcolor /******************************************************************************/ LOCAL i, nFormCount := Len( _HMG_aFormNames ) LOCAL nI, cCtrlName, cFormName LOCAL aCtrls FOR i := 1 TO nFormCount cFormName := _HMG_aFormNames [ i ] IF _IsWindowDefined ( cFormName ) SetProperty( cFormName, "BACKCOLOR", GRAY ) aCtrls := _GetArrayOfAllControlsForForm( cFormName ) FOR nI := 1 TO Len( aCtrls ) cCtrlName := aCTrls[ nI ] SetProperty( cFormName, cCtrlName, "BACKCOLOR", GRAY ) SetProperty( cFormName, cCtrlName, "FONTCOLOR", WHITE ) NEXT ENDIF NEXT Return /******************************************************************************/ FUNCTION _GetArrayOfAllControlsForForm ( cFormName ) /******************************************************************************/ LOCAL nFormHandle, i, nControlCount, aRetVal := {}, x nFormHandle := GetFormHandle ( cFormName ) nControlCount := Len ( _HMG_aControlHandles ) FOR i := 1 TO nControlCount IF _HMG_aControlParentHandles[ i ] == nFormHandle IF ValType( _HMG_aControlHandles[ i ] ) == 'N' IF ! Empty( _HMG_aControlNames[ i ] ) IF AScan( aRetVal, _HMG_aControlNames[ i ] ) == 0 AAdd( aRetVal, _HMG_aControlNames[ i ] ) ENDIF ENDIF ELSEIF ValType( _HMG_aControlHandles[i ] ) == 'A' FOR x := 1 TO Len ( _HMG_aControlHandles[ i ] ) IF !Empty( _HMG_aControlNames[ i ] ) IF AScan( aRetVal, _HMG_aControlNames[ i ] ) == 0 AAdd( aRetVal, _HMG_aControlNames[ i ] ) ENDIF ENDIF NEXT x ENDIF ENDIF NEXT i RETURN ASort( aRetVal )
|
|
|
|
| постоянный участник
|
Пост N: 1061
Зарегистрирован: 17.02.12
|
|
Отправлено: 30.06.16 14:24. Заголовок: Haz пишет Попробуй п..
Haz пишет цитата: | Попробуй пробежаться по свойсьву BackColor окна и ВСЕХ его контролов. |
| тогда контролам и disable добавить можо
|
|
|
|
| |
Пост N: 1024
Зарегистрирован: 20.02.11
|
|
Отправлено: 30.06.16 14:28. Заголовок: SergKis пишет: тогд..
SergKis пишет: цитата: | тогда контролам и disable добавить можо |
| да, вполне логично это сделать
|
|
|
|
| постоянный участник
|
Пост N: 4987
Зарегистрирован: 12.09.06
|
|
Отправлено: 30.06.16 18:02. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Эти две фукции могут в этом деле помочь |
| Не совсем понятно.... Имею кнопку на форме, при нажатии должны: затемнить текущая форма + вызов новой формы, после закрытия новой формы нужно разтемнить текущую форму.
|
|
|
|
| постоянный участник
|
Пост N: 1062
Зарегистрирован: 17.02.12
|
|
Отправлено: 30.06.16 18:57. Заголовок: Andrey пишет Не совс..
Andrey пишет добавь local b, f, aClrOld := {} ... cCtrlName := aCTrls[ nI ] b := GetProperty( cFormName, cCtrlName, "BACKCOLOR" ) f := GetProperty( cFormName, cCtrlName, "FONTCOLOR" ) aAdd(aClrOld, {cFormName, cCtrlName, b, f}) SetProperty( cFormName, cCtrlName, "BACKCOLOR", GRAY ) SetProperty( cFormName, cCtrlName, "FONTCOLOR", WHITE ) ... Return aClrOld на вызове новой формы или на нажатии темнишь и получаешь старые значения на release новой возвращаешь старые значения на форму - разтемняешь
|
|
|
|
|
| постоянный участник
|
Пост N: 4988
Зарегистрирован: 12.09.06
|
|
Отправлено: 30.06.16 20:51. Заголовок: У Дмитрия красивое з..
У Дмитрия красивое затенение окна. Примерно так хочется - кнопка BUTTONEX Button_Test с обработкой: ACTION {|| aObj := ChangeAllBackcolor(ThisWindow.Name) ,; MsgDebug("Test Change All Backcolor Form") ,; ChangeAllBackRestore(aObj,ThisWindow.Name) } Фон менять нужно у всех объектов, включая TsBrowse .... С картинкой только это не выйдет, я имею ввиду PNG со свойством TRANSPARENT BACKGROUNDCOLOR aBackColor ....
|
|
|
|
| |
Пост N: 5834
Зарегистрирован: 17.05.05
|
|
Отправлено: 02.07.16 12:43. Заголовок: При нажатии кнопки н..
При нажатии кнопки на форме , каким образом запомнить фон цвета не активного курсора бровса , сменить его и затем снова восстановить. Объясню зачем. Кнопка на форме скипает бровс. У нее такая процедура ACTION {|| tmpbrw:GoDown(),tmpbrw:SetFocus() } При нажатии на нее бровс теряет фокус ввода и затем снова его получает , в результате имеем на бровсе "подмигивание" курсора. Попробовал в кнопке ON GOTFOCUS {|| tmpbrw:setcolor({12},{Rgb( 198, 226, 255 ), Rgb( 159, 207, 255 )})} Но тогда при наведении на кнопку , дергается весь бровс Проехали
|
|
|
|
| постоянный участник
|
Пост N: 596
Зарегистрирован: 13.10.05
|
|
Отправлено: 07.07.16 09:49. Заголовок: У разных языков раз..
У разных языков разные реализации. У Делфи у формы есть свойство AlphaBlend (и параметр) - устанавливает прозрачность. А дальше все просто - надо затенить основную форму - поверх ее (а можно и на весь Экран) открываешь вторую с нужной прозрачность и оттенком. На Основной ничего делать с контролами не надо.Кстати, так и Локеры пишутся
|
|
|
|
| |
Пост N: 1026
Зарегистрирован: 20.02.11
|
|
Отправлено: 07.07.16 23:12. Заголовок: Влад, идея понятна. ..
Влад, идея понятна. Думаю будет работать. Спасибо
|
|
|
|
| |
Пост N: 5851
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.07.16 08:11. Заголовок: Как узнать что кнопк..
Как узнать что кнопка имеет фокус ввода ? PS Проехали сделал через переменную
|
|
|
|
| постоянный участник
|
Пост N: 1067
Зарегистрирован: 17.02.12
|
|
Отправлено: 09.07.16 15:02. Заголовок: Dima пишет:Как узнат..
Dima пишет: цитата: | Как узнать что кнопка имеет фокус ввода ? |
| IF ( nI := ascan(_HMG_aControlHandle, GetFocus()) ) > 0 // фокус на контроле МиниГуи IF _HMG_aControlType [ nI ] == "BUTTON" .and. _HMG_aControlNames [ nI ] == ButtonName // нужный button (или другой контрол) нашли и он в фокусе ... ENDIF ENDIF
|
|
|
|
| |
Пост N: 5852
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.07.16 15:32. Заголовок: SergKis Спасибо !..
SergKis Спасибо Это я так понял для всех окон а если для конкретного окна , то как ? И еще вопрос: как узнать установлен ли конкретный шрифт в системе ?
|
|
|
|
| постоянный участник
|
Пост N: 1068
Зарегистрирован: 17.02.12
|
|
Отправлено: 09.07.16 17:10. Заголовок: Dima GetFocus() дае..
Dima GetFocus() дает handle контрола в фокусе (окно тоже) ParentFormHandle :=_HMG_aControlParenthandles [ nI ] If ( nK := ascan(_HMG_aFormHandles, ParentFormHandle) ) > 0 cFormName := _HMG_aFormNames[ nK ] EndIf
|
|
|
|
| постоянный участник
|
Пост N: 1069
Зарегистрирован: 17.02.12
|
|
Отправлено: 09.07.16 17:15. Заголовок: Dima пишет как узна..
Dima пишет цитата: | как узнать установлен ли конкретный шрифт в системе ? |
| где то уже было, Андрей выяснял, если не ошибаюсь, сам не использовал.
|
|
|
Ответов - 151
, стр:
1
2
3
4
5
6
7
8
All
[только новые]
|
|