Форум » GUI » [?] Простой вопрос » Ответить

[?] Простой вопрос

Dima: Есть главное окно программы , в нем живут несколько CHILD окон (не MDI). В процедуре ON INTERACTIVECLOSE главного окна есть блок кода , если он вернет TRUE тогда закроется главное окно и программа завершится. А вот если блок кода вернул FALSE , то как вернуть фокус ввода на окно на котором был фокус ввода до нажатия крестика главного окна ?

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

SergKis: Dima пробни xy+=This.Button_1.Width+11 и глянь i_this.ch

Dima: SergKis пишет: xy+=This.Button_1.Width+11 Пробовал так , не компилится...

SergKis: Dima пишет:Пробовал так , не компилится... Тады ОЙ !


Dima: Как узнать нажата клавиша (юзер на нее чашку кофе поставил ) или уже отпущена ? Интересуют VK_DOWN и VK_UP Через Sendmessage это можно получить ?

SergKis: Dima пишет Интересуют VK_DOWN и VK_UP с VK_DOWN - это bUserKeys, а с VK_UP нету, есть метод KeyUp, но в нем нет то, что надо По идее надо было бы иметь bKeyDown и bKeyUp для таких целей

Dima: Сергей я не много не о том. Есть главный бровс и подчиненный в одном окне. При движении по главному , показываю данные в подчиненном по ключу из базы главного в :BChange Там живет что то типа фильтра (SCOPE) + Obrw:Reset() подчиненного бровса. Так вот если база довольно большая И юзер зажал стрелку ВНИЗ то через какой то момент бровс может коника дать....то есть зависнет. Нужна идея (Игорь в курсе) что бы освежать подчиненный бровс только после того как юзер отпустил в конце концов стрелку вниз (вверх и тд и тп включая колесо мыши)

SergKis: Дима, я о том же. Мне пришлось влезть в KeyDown и сделать (у меня базовая версия 2.07 и изменения [в рамках разумного переношу из тек.]) [pre2] METHOD KeyDown( nKey, nFlags ) CLASS TSBrowse ... Case nKey == VK_UP ::GoUp() If ::nRowPos == 1 If ::nKeyDownOld == nKey ::nKeyDownCnt += 1 EndIf If ::nKeyDownCnt >= ( ::nRowCount() ) PostMessage(::hWnd, WM_KEYUP , VK_UP , 0) PostMessage(::hWnd, WM_KEYDOWN, VK_PRIOR, 0) EndIf EndIf ::nKeyDownOld := nKey Case nKey == VK_DOWN ::GoDown() x If ::nRowPos == ::nRowCount() If ::nKeyDownOld == nKey ::nKeyDownCnt += 1 EndIf If ::nKeyDownCnt >= ( ::nRowCount() ) PostMessage(::hWnd, WM_KEYUP , VK_DOWN, 0) PostMessage(::hWnd, WM_KEYDOWN, VK_NEXT, 0) EndIf EndIf ::nKeyDownOld := nKey Case nKey == VK_LEFT ... [/pre2]

SergKis: PS а подчиненный бровс обновлять по таймеру при смене ключа связки раз в 1 сек. такой механизм работает со времен VO

Dima: Понял , думал есть какие другие идеи. Игорь тоже предлагает по таймеру. Проехали тогда.

Dima: ЗЫ В консоли по ходу ни чего не виснет при обновлении подчиненного бровса и даже ни какой велосипед сочинять не надо. Пусть юзер хоть заснет на клаве :)

SergKis: Dima пишет Через Sendmessage это можно получить ? ... ни какой велосипед сочинять не надо Дима, в чем сомнения ? в подчиненном бровсе переотображать надо (алгоритм делать), а управлять сообщеними (в гуи так принято), например смотри Tsb_Seek2 и on change с postmessage на кл.VK_F20. у тебя похожая ситуация только по таймеру, т.е. подчиненный бровс знает как отображать, а таимер просто посылает сообщение на переотображение через время и все

Dima: SergKis пишет: Дима, в чем сомнения ? Да привык к консоли , вот оно и сказывается. Мысль понял. Спасибо !

Dima: Хотел положить тень на все окно а после .... ее убрать. Есть ли пример ?

SergKis: Dima пишет Хотел положить тень на все окно а после .... ее убрать. "моя твоя не понимай", что хочешь 1. цвет в окне на серый 2. не активное окно 3. контролы disable ???

Dima: SergKis пишет: 1. цвет в окне на серый вот так

Dima: я бы даже сказал затемнение как на скрине http://3.bp.blogspot.com/-rQQn7_ClLss/VMKu_Hu01AI/AAAAAAAAE-o/CBTnCLAo8f0/s1600/ishop_.png

SergKis: Dima а это пробовал (по chm) ? <WindowName>.BackColor := aBackColor SetProperty(cFrm, "BackColor", aBackColor)

SergKis: Dima пишет я бы даже сказал затемнение как на скрине там не активное основное окно, поверх лежит модал окно NOSIZE NOMINIMIZE NOMAXMIZE

SergKis: PS точнее с MODAL [ NOSIZE ] [ NOSYSMENU ] [ NOCAPTION ] со своим X и астион выхода

Dima: SergKis пишет: SetProperty(cFrm, "BackColor", aBackColor) Счас пробну. Это не то.



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