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

Вниз

Получение фокуса компонентом.   Найти похожие ветки 

 
Mishenka   (2006-10-25 10:22) [0]

Пишу компонент потомок TCustomControl. Сделал обработку события OnEnter для обработки получения фокуса. При переходе Tab"ом компонент фокус получает, а вот при клике мышкой нет. Как сделать чтоб компонент получал фокус ввода при клике мышкой как и другие компоненты, или надо обрабатывать OnMouseDown ?


 
DVM ©   (2006-10-25 10:25) [1]


> или надо обрабатывать OnMouseDown ?

и так тоже можно


 
Mishenka   (2006-10-25 10:51) [2]

А как сделано в стандартных компонентах?
Полез смотреть исходники ListBox"а, но что-то не могу найти как у него это реализовано...


 
Плохиш ©   (2006-10-25 10:58) [3]


> Mishenka   (25.10.06 10:22)  
> Пишу компонент потомок TCustomControl. Сделал обработку
> события OnEnter для обработки получения фокуса.

Два предложения взаимонесвязанные. Событие OnEnter не для разработчика компонента, а для разработчика использующего компонент.

> Mishenka   (25.10.06 10:51) [2]
> А как сделано в стандартных компонентах?

TWinControl.DoEnter
Находится за 2 секунды.


 
Mishenka   (2006-10-25 14:21) [4]


> Плохиш ©   (25.10.06 10:58) [3]
> TWinControl.DoEnter Находится за 2 секунды.

Ну вот нашёл что ты мне предлагаешь:
procedure TWinControl.DoEnter;
begin
 if Assigned(FOnEnter) then FOnEnter(Self);
end;

Только не понимаю, как это в данном случае может помочь.


> Два предложения взаимонесвязанные. Событие OnEnter не для
> разработчика компонента, а для разработчика использующего компонент.

Ну я просто неудачно выразился. Вот здесь я как раз и использовал метод DoEnter...


 
Юрий Зотов ©   (2006-10-25 15:02) [5]

> Mishenka   (25.10.06 10:22)  

> Как сделать чтоб компонент получал фокус ввода при клике мышкой

Насколько помню, надо заместить конструктор и там установить в ControlStyle флаг, разрешающий контролу получать сообщения мыши. Уточните по справке.


 
DVM ©   (2006-10-25 15:42) [6]

А у меня работало и так:

public
 procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;

....

procedure TMyControl.MouseMove(Shift: TShiftState; X, Y: Integer) ;
begin
 ...
 inherited MouseMove(Shift, x,y);
end;


 
DVM ©   (2006-10-25 15:42) [7]

т.е. сообщения мышки приходят и так



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

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

Наверх




Память: 0.48 MB
Время: 0.045 c
15-1161781670
Иксик
2006-10-25 17:07
2006.11.12
Кто-то когда-то искал программу для сравнения excel файлов


15-1162011397
Rbn
2006-10-28 08:56
2006.11.12
AutoCad


15-1161339330
ArtemESC
2006-10-20 14:15
2006.11.12
Язык, который всем нравится...


15-1161875153
TIF
2006-10-26 19:05
2006.11.12
Этот заколдованный реестр...


2-1161697308
Дева
2006-10-24 17:41
2006.11.12
Перемещение в TDBGrid