Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.30;
Скачать: CL | DM;

Вниз

фокус ввода   Найти похожие ветки 

 
wal ©   (2002-08-14 11:56) [0]

Уважаемые Мастера, как узнать кому принадлежит фокус ввода?
Конкретнее - куда ушел бы символ, если бы была нажата кнопка на клавиатуре. Просто имеется девайс - работает под виндовзом, имеется сенсорный экран - эмулирует мышь. Хотелось бы отказаться от клавиатуры - и для этого пишется программный эмулятор, задача которого - при нажатии пальцем на экран (при этом происходит клик по буттону) вывести соответствующую буковку(циферку) в тот элемент ввода, который был активет до клика по буттону, и вернуть ему фокус ввода. Принимаются любые предложения. Спасибо.


 
Игорь Шевченко ©   (2002-08-14 12:13) [1]

GetFocus, наверное


 
wal ©   (2002-08-14 13:59) [2]

GetFocus работает только внутри своего приложения :(


 
Игорь Шевченко ©   (2002-08-14 14:04) [3]

Тогда это забота win32k.sys - определять, куда пойдут данные.
Все равно, надо ведь будет драйвер для этого устройства писать, а правильно понимаю ?


 
wal ©   (2002-08-14 14:13) [4]


> Все равно, надо ведь будет драйвер для этого устройства
> писать, а правильно понимаю ?

Не совсем - можно считать, что это компьютер, IBM-совместимый, установлена WinXP, требуется изобразить программу - эмулятор клавиатуры (типа как в бесклавиатурных карманных компьютерах).
Основная проблема в том, что при нажатии на кнопку фокус ввода переходит к моей программе.


 
Игорь Шевченко ©   (2002-08-14 14:44) [5]

AttachThreadInput не поможет ?


 
Игорь Шевченко ©   (2002-08-14 14:46) [6]

У Рихтера был пример определения того, какое окно получит клавиатурный ввод


 
Diamond Cat ©   (2002-08-14 15:49) [7]

Если не ошибаюсь то при переходе фокуса ввода от одного компонента к другому, проскакивают сообщения типа wm_killfocus и wm_setfocus (точно не помню какое нужно), и в каком-то из параметров параметров этих сообщений содержится хендл контрола потерявшего фокус, таким образом поставив системный хук можно узнать какой контрол был активен, если нужно могу слить пример (когда-то решал подобную задачу).


 
Ученик ©   (2002-08-14 16:16) [8]

procedure TForm1.FormShow(Sender: TObject);
begin
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_NOACTIVATE)
end;


 
Ребенок Кирилл   (2002-08-15 02:58) [9]

Diamond Cat © Ты не мог бы слить заодно и мне?


 
rhf ©   (2002-08-15 05:40) [10]

через getFocus и attachThreadInput
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1029365322&n=0


 
wal ©   (2002-08-15 10:49) [11]

Всем огромная благодарность и ящик виртуального пива :)
Вобщем спасибо.



Страницы: 1 вся ветка

Текущий архив: 2002.09.30;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.022 c
14-98352
koks
2002-09-05 17:56
2002.09.30
кто юзает ExpressBars 4...


4-98392
oduvan
2002-08-13 17:20
2002.09.30
Не работает посылка сообщения в другую прогу!!!


14-98317
VictorT
2002-09-03 14:59
2002.09.30
NT 4.0 & USB


14-98319
NeyroSpace
2002-09-05 11:14
2002.09.30
Можно ли написать серьезный проект на VCL, а не на API?


14-98344
sanilo
2002-09-05 12:33
2002.09.30
dll