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

Вниз

Focus . Как узнать где он в данный момент находится ?   Найти похожие ветки 

 
Кен ©   (2003-06-10 03:48) [0]

Можно перебирать все компоненты и проверять не на них ли он находится, но это неудобно. Может можно как то попроще ?


 
Спрашивающий   (2003-06-10 04:21) [1]

Простой тест из него все поймешь
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Text:=IntToStr( GetFocus);
end;


 
Кен ©   (2003-06-10 05:08) [2]

Дельфи пишет какие то циферки, причём каждый раз разные. А как их преобразовать в нечто более понятное ?


 
ЮЮ ©   (2003-06-10 05:33) [3]

TForm.ActiveControl


 
Кен ©   (2003-06-10 05:56) [4]

Спасибо ! Понял.


 
Спрашивающий   (2003-06-10 06:33) [5]

Эти цифорки-это Handle твоего компанента с фокусом, а большинство операций с компанентом можно проделывать зная его
Handle .


 
Кен ©   (2003-06-10 06:40) [6]

Глюк обнаружил. Когда фокус отбирает TWebBrowser, то программа всё равно думает, что фокус на Edit1. Почему так ? Как неотдавать фокус ? Или как его вернуть обратно ? Или хотя бы как определять, что он на браузере ?


 
Кен ©   (2003-06-11 01:27) [7]

Как же с вэббраузером то быть то ?


 
Song ©   (2003-06-11 08:41) [8]

А как ты решил, что "программа всё равно думает, что фокус на Edit1" ?


 
Федя   (2003-06-11 09:20) [9]

Просто ты получаеш не глобальный фокус а фокус в твоее программе


 
Федя   (2003-06-11 09:24) [10]

Используй GetFocus а не TForm.ActiveControl


 
Silver_ ©   (2003-06-11 09:32) [11]

Screen.ActiveControl;
Скажет где фокус в активной форме.


 
Кен ©   (2003-06-13 01:33) [12]

> Song © (11.06.03 08:41)
> А как ты решил, что "программа всё равно думает, что фокус
> на Edit1" ?

Через таймер отслеживаю TForm.ActiveControl . Пишет что на он на Edit1 а набрать текст становится невозможно, так как Браузер фокус отобрал. Зато можно перемещать вэб-страницу вверх вниз кнопками, что являеется подтверждением, что фокус на ВэбБраузере.


> Silver_ © (11.06.03 09:32)
> Screen.ActiveControl;
> Скажет где фокус в активной форме.

Непомогает. Даже если просто мышкой кликнуть на ВэбБраузер, но всё равно пишет, что фокус на Edit1 .


> Федя (11.06.03 09:24)
> Используй GetFocus а не TForm.ActiveControl

А как вообще не отдавать фокус ? Сделать так, чтобы он сам не переключался ни на ВэбБраузер, ни на что другое ?


 
Silver_ ©   (2003-06-13 10:54) [13]

При Edit1.OnExit -> Edit1.SetFocus;

Тока думается что ничего больше не сможешь сделать так как если хочешь юзать контрол он должен получить фокус.
Вобще не знаю что за трабл с TWebBrowser, я в главной форме знаю контрол в фокусе с любой формы в приложении.


> Когда фокус отбирает TWebBrowser, то программа всё равно
> думает, что фокус на Edit1
. Почему так ? Как неотдавать
> фокус ? Или как его вернуть обратно ?

Значит получил что хотел Edit1 не хочет фокусом делится (т.е. оставляет его при себе) :о)

А если серьезно то попробуй в кнопке
begin
WebBrowser1.SetFocus;
ShowMessage(Screen.ActiveControl);
end;

тогда может будет понятно в чем дело то.



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

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

Наверх




Память: 0.5 MB
Время: 0.025 c
14-84738
killer
2003-06-06 00:54
2003.06.26
TBLODStream


3-84007
Жук
2003-05-30 16:14
2003.06.26
Select из ХП


1-84135
Nucl
2003-06-10 11:28
2003.06.26
Corba на Unixe и Delphi


11-84064
kvv1974
2002-10-04 09:02
2003.06.26
Обработка KeyDown, KeyUp


14-84571
лавра
2003-06-07 23:10
2003.06.26
Вес