On-line: Andrey, Haz, гостей 1. Всего: 3 [подробнее..]
АвторСообщение
администратор




Пост N: 5760
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.06.16 21:20. Заголовок: [?] Простой вопрос


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

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



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




Пост N: 5853
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.07.16 21:44. Заголовок: SergKis пишет: где ..


SergKis пишет:

 цитата:
где то уже было, Андрей выяснял, если не ошибаюсь


Да он выяснял , загружен ли фонт в программе .
Ответ был таков GetFontHandle( Font_1 ) если вернуло 0 , не загружен.
А вопрос был а доступен ли фонт в системе. В семерке скажем есть фонты которых нет в XP а
я формирую Excel отчет и там хочу установить нужный фонт с проверкой конечно.
Похожую функцию нашел GetFont() , но она и диалоговое окно вешает а оно мне не нужно.
Мне бы просто массив имен фонтов

Насчет фокуса контрола вроде понял , тяжко дается после консоли все это

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




Пост 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_... все о форме на котором контрол.


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




Пост N: 5857
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.07.16 13:17. Заголовок: Vlad04 пишет: А дал..


Vlad04 пишет:

 цитата:
А дальше все просто - надо затенить основную форму - поверх ее (а можно и на весь Экран) открываешь вторую с нужной прозрачность


Сделал , прикольно получилось !

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




Пост N: 5858
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.07.16 13:34. Заголовок: http://f3.s.qip.ru/g..




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


Пост N: 597
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 10.07.16 14:00. Заголовок: Dima пишет: цитата..



 цитата:

Dima пишет:
цитата:
Как узнать что кнопка имеет фокус ввода ?


Можно в некоторых случаях так, к примеру:

 цитата:


if This.FocusedControl == "Text_New"

.....
endif




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




Пост N: 5859
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.07.16 14:14. Заголовок: Vlad04 И так сработ..


Vlad04
И так сработает ?
 
if GetProperty( "Form_0", "FocusedControl" )=="Text_New"
....
endif


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


Пост N: 598
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 10.07.16 15:03. Заголовок: Dima И так сработае..


Dima

 цитата:
И так сработает ?



И так сработает !

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




Пост N: 5860
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.07.16 15:10. Заголовок: Vlad04 пишет: И так..


Vlad04 пишет:

 цитата:
И так сработает !


У меня не работает , во всяком случае в GOTFOCUS окна , впрочем как и не пашет установка
фокуса на бровс. При чем это не пашет если окно получает фокус ввода извне (не из моей проги).
Такое поведение только на семерке и XP , выше уже все в порядке.
К примеру из проги сформировал отчет EXCEL и вывел его окно так
ShowWindow(oExcel:hWnd, SW_MAXIMIZE)
BringWindowToTop(oExcel:hWnd)

То после возврата в свою программу все танцы с установкой (проверкой) фокуса не работают в GOTFOCUS окна.
Поэтому пришлось делать через свои переменные.

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




Пост N: 5861
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.07.16 15:33. Заголовок: Как заставить мышку ..


Как заставить мышку ездить только в пределах указанного окна а после определенных
действий вернуть как было ?
Вроде был пример , но пока не вижу.

ЗЫ
Идея вроде ясна , на ON MOUSEMOVE окна вешаем процедуру которая снимает координаты мыши (GETCURSORPOS()) ,
затем сверяем координаты с координатами окна и если нужно ставим курсор мыши куда нужно
с помощью SetcursorPos()

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




Пост N: 961
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.07.16 15:36. Заголовок: Dima пишет: Мне бы ..


Dima пишет:

 цитата:
Мне бы просто массив имен фонтов


Посмотри функцию rr_GetFontNames() из сырцов библиотеки HbPrinter

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




Пост N: 5862
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.07.16 15:40. Заголовок: gfilatov2002 То что..


gfilatov2002
То что надо

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


Пост N: 599
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 11.07.16 11:17. Заголовок: Dima Не клацайте на..


Dima

 цитата:
Не клацайте на форме Excel



Желательно, до окончания формирования отчета , Excel не показывать.
Для больших отчетов существенное ускорение.

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




Пост N: 5865
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.07.16 12:12. Заголовок: Vlad04 пишет: Желат..


Vlad04 пишет:

 цитата:
Желательно, до окончания формирования отчета , Excel не показывать.


Да я знаю , так и делал.
Сам отчет не очень большой да и юзеры захотели "мультов"

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




Пост N: 5869
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.07.16 21:51. Заголовок: Вертикальный скролл ..


Вертикальный скролл вообще отрубается в TS ?
Установка obrw:lNoVScroll := TRUE ему до лампочки

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




Пост N: 5870
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.07.16 22:11. Заголовок: И еще наверное косяк..


И еще наверное косяк
В бровсе 2 колонки
Есть установки
obrw:nfreeze:=2
obrw:lLockFreeze:=FALSE
Так вот если вертикального скрола нет (база не большая) то я могу входит в режим редактирования двойным кликом
мышки , если этот скрол есть то не могу , хотя VK_RETURN пускает в обоих случаях в режим редактирования.


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




Пост N: 1027
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 13.07.16 23:23. Заголовок: Dima пишет: Установ..


Dima пишет:

 цитата:
Установка obrw:lNoVScroll := TRUE ему до лампочки



Перед LoadFields() или Перед ::SetArray() те до того как определены данные для бровса

oBrw:lNoVScroll := TRUE
oBrw:oVScroll := NIL

ЗЫ Все в исходниках
Это как в поговорке - "Моется тот кому лень чесаться"


 цитата:
Тоже с этим замучился.


так и мучается тот кому лень читать



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




Пост N: 5003
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.07.16 23:23. Заголовок: Dima пишет: Вертика..


Dima пишет:

 цитата:
Вертикальный скролл вообще отрубается в TS ?
Установка obrw:lNoVScroll := TRUE ему до лампочки



Ага, подтверждаю !
Тоже с этим замучился.


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




Пост N: 1028
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 13.07.16 23:25. Заголовок: Dima пишет: Так вот..


Dima пишет:

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


с этим не сталкивался , в сырцах вроде нет зависимости редакции от скрола

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




Пост 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 зависим от г. скрола.


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

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