Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.027 c
2-1161956417
svg
2006-10-27 17:40
2006.11.12
Внешний вид даты в табл. SQL базы


2-1161872990
Riply
2006-10-26 18:29
2006.11.12
Последовательный доступ к памяти


15-1161807382
TButton
2006-10-26 00:16
2006.11.12
мастерам php =)


2-1161867342
VALUA
2006-10-26 16:55
2006.11.12
Форма и экран


15-1160672504
VictorT
2006-10-12 21:01
2006.11.12
Кто нить помнит название и автора фантастического рассказа...




   Наверх