Автор | Сообщение |
|
| |
Пост N: 5760
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.06.16 21:20. Заголовок: [?] Простой вопрос
Есть главное окно программы , в нем живут несколько CHILD окон (не MDI). В процедуре ON INTERACTIVECLOSE главного окна есть блок кода , если он вернет TRUE тогда закроется главное окно и программа завершится. А вот если блок кода вернул FALSE , то как вернуть фокус ввода на окно на котором был фокус ввода до нажатия крестика главного окна ?
|
|
|
Новых ответов нет
, стр:
1
2
3
4
5
6
7
8
All
[см. все]
|
|
|
| постоянный участник
|
Пост N: 1070
Зарегистрирован: 17.02.12
|
|
Отправлено: 09.07.16 17:20. Заголовок: Dima пишет Это я так..
Dima пишет цитата: | Это я так понял для всех окон а если для конкретного окна , то как ? |
| не очень понимаю к чему клонишь ? If GetControlHandle(cControlName, cForm) == GetFocus() // нужный конрол нужного окна в фокусе EndIf
|
|
|
|
| |
Пост N: 5853
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.07.16 21:44. Заголовок: SergKis пишет: где ..
SergKis пишет: цитата: | где то уже было, Андрей выяснял, если не ошибаюсь |
| Да он выяснял , загружен ли фонт в программе . Ответ был таков GetFontHandle( Font_1 ) если вернуло 0 , не загружен. А вопрос был а доступен ли фонт в системе. В семерке скажем есть фонты которых нет в XP а я формирую Excel отчет и там хочу установить нужный фонт с проверкой конечно. Похожую функцию нашел GetFont() , но она и диалоговое окно вешает а оно мне не нужно. Мне бы просто массив имен фонтов Насчет фокуса контрола вроде понял , тяжко дается после консоли все это
|
|
|
|
| постоянный участник
|
Пост N: 1071
Зарегистрирован: 17.02.12
|
|
Отправлено: 09.07.16 23:29. Заголовок: Dima пишет тяжко да..
Dima пишет цитата: | тяжко дается после консоли все это |
| Главное помни, что на событиях окон, контролов (в блоках кода) всегда есть переменные _HMG_ThisFormIndex _HMG_ThisEventType _HMG_ThisType _HMG_ThisIndex _HMG_ThisFormName _HMG_ThisControlName от них плясать надо в блоках кода. _HMG_ThisType := W-window\C-control а GetFocus(), как правило нужно в процедурах типа TIMER если в GetBox использовать ACTION, ACTION2 и при клике на буттоны соответствующие, в вызовах GetFocus() даст handle нажатого button (он отсутствует в регистации контрлов МиниГуи), а _HMG_ThisControlName даст имя GetBox, к которому бутонны относятся. Через _HMG_ThisIndex можно достать из переменных _HMG_... все о контроле, а через _HMG_ThisFormIndex можно достать из переменных _HMG_... все о форме на котором контрол.
|
|
|
|
| |
Пост N: 5857
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.07.16 13:17. Заголовок: Vlad04 пишет: А дал..
Vlad04 пишет: цитата: | А дальше все просто - надо затенить основную форму - поверх ее (а можно и на весь Экран) открываешь вторую с нужной прозрачность |
| Сделал , прикольно получилось !
|
|
|
|
| |
Пост N: 5858
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.07.16 13:34. Заголовок: http://f3.s.qip.ru/g..
|
|
|
|
| постоянный участник
|
Пост N: 597
Зарегистрирован: 13.10.05
|
|
Отправлено: 10.07.16 14:00. Заголовок: Dima пишет: цитата..
цитата: | Dima пишет: цитата: Как узнать что кнопка имеет фокус ввода ? |
| Можно в некоторых случаях так, к примеру: цитата: | if This.FocusedControl == "Text_New" ..... endif |
|
|
|
|
|
| |
Пост N: 5859
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.07.16 14:14. Заголовок: Vlad04 И так сработ..
Vlad04 И так сработает ? if GetProperty( "Form_0", "FocusedControl" )=="Text_New" .... endif
|
|
|
|
| постоянный участник
|
Пост N: 598
Зарегистрирован: 13.10.05
|
|
Отправлено: 10.07.16 15:03. Заголовок: Dima И так сработае..
|
|
|
|
| |
Пост N: 5860
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.07.16 15:10. Заголовок: Vlad04 пишет: И так..
Vlad04 пишет: У меня не работает , во всяком случае в GOTFOCUS окна , впрочем как и не пашет установка фокуса на бровс. При чем это не пашет если окно получает фокус ввода извне (не из моей проги). Такое поведение только на семерке и XP , выше уже все в порядке. К примеру из проги сформировал отчет EXCEL и вывел его окно так ShowWindow(oExcel:hWnd, SW_MAXIMIZE) BringWindowToTop(oExcel:hWnd) То после возврата в свою программу все танцы с установкой (проверкой) фокуса не работают в GOTFOCUS окна. Поэтому пришлось делать через свои переменные.
|
|
|
|
| |
Пост N: 5861
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.07.16 15:33. Заголовок: Как заставить мышку ..
Как заставить мышку ездить только в пределах указанного окна а после определенных действий вернуть как было ? Вроде был пример , но пока не вижу. ЗЫ Идея вроде ясна , на ON MOUSEMOVE окна вешаем процедуру которая снимает координаты мыши (GETCURSORPOS()) , затем сверяем координаты с координатами окна и если нужно ставим курсор мыши куда нужно с помощью SetcursorPos()
|
|
|
|
| moderator
|
Пост N: 961
Зарегистрирован: 11.02.10
|
|
Отправлено: 10.07.16 15:36. Заголовок: Dima пишет: Мне бы ..
Dima пишет: цитата: | Мне бы просто массив имен фонтов |
| Посмотри функцию rr_GetFontNames() из сырцов библиотеки HbPrinter
|
|
|
|
|
| |
Пост N: 5862
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.07.16 15:40. Заголовок: gfilatov2002 То что..
gfilatov2002 То что надо
|
|
|
|
| постоянный участник
|
Пост N: 599
Зарегистрирован: 13.10.05
|
|
Отправлено: 11.07.16 11:17. Заголовок: Dima Не клацайте на..
Dima цитата: | Не клацайте на форме Excel |
| Желательно, до окончания формирования отчета , Excel не показывать. Для больших отчетов существенное ускорение.
|
|
|
|
| |
Пост N: 5865
Зарегистрирован: 17.05.05
|
|
Отправлено: 11.07.16 12:12. Заголовок: Vlad04 пишет: Желат..
Vlad04 пишет: цитата: | Желательно, до окончания формирования отчета , Excel не показывать. |
| Да я знаю , так и делал. Сам отчет не очень большой да и юзеры захотели "мультов"
|
|
|
|
| |
Пост N: 5869
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.07.16 21:51. Заголовок: Вертикальный скролл ..
Вертикальный скролл вообще отрубается в TS ? Установка obrw:lNoVScroll := TRUE ему до лампочки
|
|
|
|
| |
Пост N: 5870
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.07.16 22:11. Заголовок: И еще наверное косяк..
И еще наверное косяк В бровсе 2 колонки Есть установки obrw:nfreeze:=2 obrw:lLockFreeze:=FALSE Так вот если вертикального скрола нет (база не большая) то я могу входит в режим редактирования двойным кликом мышки , если этот скрол есть то не могу , хотя VK_RETURN пускает в обоих случаях в режим редактирования.
|
|
|
|
| |
Пост N: 1027
Зарегистрирован: 20.02.11
|
|
Отправлено: 13.07.16 23:23. Заголовок: Dima пишет: Установ..
Dima пишет: цитата: | Установка obrw:lNoVScroll := TRUE ему до лампочки |
| Перед LoadFields() или Перед ::SetArray() те до того как определены данные для бровса oBrw:lNoVScroll := TRUE oBrw:oVScroll := NIL ЗЫ Все в исходниках Это как в поговорке - "Моется тот кому лень чесаться" так и мучается тот кому лень читать
|
|
|
|
| постоянный участник
|
Пост N: 5003
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.07.16 23:23. Заголовок: Dima пишет: Вертика..
Dima пишет: цитата: | Вертикальный скролл вообще отрубается в TS ? Установка obrw:lNoVScroll := TRUE ему до лампочки |
| Ага, подтверждаю ! Тоже с этим замучился.
|
|
|
|
| |
Пост N: 1028
Зарегистрирован: 20.02.11
|
|
Отправлено: 13.07.16 23:25. Заголовок: Dima пишет: Так вот..
Dima пишет: цитата: | Так вот если вертикального скрола нет (база не большая) то я могу входит в режим редактирования двойным кликом мышки , если этот скрол есть то не могу , хотя VK_RETURN пускает в обоих случаях в режим редактирования. |
| с этим не сталкивался , в сырцах вроде нет зависимости редакции от скрола
|
|
|
|
| |
Пост N: 5871
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.07.16 08:28. Заголовок: Haz пишет: Перед Lo..
Haz пишет: цитата: | Перед LoadFields() или Перед ::SetArray() те до того как определены данные для бровса oBrw:lNoVScroll := TRUE oBrw:oVScroll := NIL |
| Не работает однако. Скрол по прежнему рисуется , но при движении по бровсу у него реакции нет (стоит на месте) Нажимаем мышкой но скроле которого не должно быть и получаем ошибку Called from GETPOS(0) Called from TSBROWSE:VSCROLL(12209) Called from TSBROWSE:HANDLEEVENT(7340) Called from EVENTS(0) Вообще я смотрел по началу примеры , прежде чем спросить и один из них твой Tsb_cursor и там была тщетная попытка выключить вертикальный скрол , не до :SetArray а после. И еще непонятка (думал решили) , каким образом горизонтальный скролл влияет на nAdjColumn , если этот скролл есть nAdjColumn работает правильно , если скрола нет то он не работает. Не должно быть между ними ни какой связи , но получается что nAdjColumn зависим от г. скрола.
|
|
|
Новых ответов нет
, стр:
1
2
3
4
5
6
7
8
All
[см. все]
|
|