![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получение фокуса компонентом. [D6, 2000, XP]
Mishenka © (2006-10-25 10:22:00)Пишу компонент потомок TCustomControl. Сделал обработку события OnEnter для обработки получения фокуса. При переходе Tab'ом компонент фокус получает, а вот при клике мышкой нет. Как сделать чтоб компонент получал фокус ввода при клике мышкой как и другие компоненты, или надо обрабатывать OnMouseDown ?
DVM (2006-10-25 15:42:00) [1]А у меня работало и так:
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:00) [2]т.е. сообщения мышки приходят и так
Юрий Зотов (2006-10-25 15:02:00) [3]> Mishenka (25.10.06 10:22)
> Как сделать чтоб компонент получал фокус ввода при клике мышкой
Насколько помню, надо заместить конструктор и там установить в ControlStyle флаг, разрешающий контролу получать сообщения мыши. Уточните по справке.
Mishenka (2006-10-25 14:21:00) [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 10:58:00) [5]
> Mishenka (25.10.06 10:22)
> Пишу компонент потомок TCustomControl. Сделал обработку
> события OnEnter для обработки получения фокуса.
Два предложения взаимонесвязанные. Событие OnEnter не для разработчика компонента, а для разработчика использующегокомпонент.
> Mishenka (25.10.06 10:51) [2]
> А как сделано в стандартных компонентах?
TWinControl.DoEnter
Находится за 2 секунды.
Mishenka (2006-10-25 10:51:00) [6]А как сделано в стандартных компонентах?
Полез смотреть исходники ListBox'а, но что-то не могу найти как у него это реализовано...
DVM (2006-10-25 10:25:00) [7]
> или надо обрабатывать OnMouseDown ?
и так тоже можно