входен фокус
Уважаеми майстори, как да разберете кой има входен фокус? По-конкретно, къде ще отиде знакът, ако се натисне бутон на клавиатурата. Просто има устройство - работи под Windows, има тъчскрийн - емулира мишка. Бих искал да изоставя клавиатурата - и за това е написан софтуерен емулатор, чиято задача е да покаже съответната буква (цифра) във входния елемент, който е бил активиран преди щракване върху бутона, и да върне фокуса на въвеждане към него. Приемат се всякакви предложения. Благодаря ти.
←→Игор Шевченко ( 2002-08-14 12:13 ) [1]
←→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]
Рихтер имаше пример за определяне кой прозорец ще получи въвеждане от клавиатурата
←→Диамантена котка ( 2002-08-14 15:49 ) [7]
Ако неГреша, когато фокусът на въвеждане се премества от един компонент към друг, съобщения като wm_killfocus и wm_setfocus се изплъзват (не помня точно кое е необходимо) и един от параметрите на тези съобщения съдържа манипулатора на контролата, която е загубила фокус, така че чрез настройка на системната кука можете да разберете коя контрола е била активна, ако е необходимо, мога да обединя пример (веднъж реших подобна задача).
←→Студент ( 2002-08-14 16:16 ) [8]
процедура TForm1.FormShow(Подател: TObject); начало SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) или WS_EX_NOACTIVATE) end;
←→Чайлд Кирил ( 2002-08-15 02:58 ) [9]
←→rhf ( 2002-08-15 05:40 ) [10]
чрез getFocus и attachThreadInput http://delphi.mastak.ru/cgi-bin/forum.pl?look=1& >
←→wal ( 2002-08-15 10:49 ) [11]
Много благодаря на всички и кутия виртуална бира :) Благодаря много.