Отримання фокусу компонентом

Отримання фокусу компонентом.

Пишу компонент нащадок TCustomControl. Зробив обробку події OnEnter для обробки отримання фокусу. При переході Tab "ом компонент фокус отримує, а ось при натисканні мишкою немає. Як зробити щоб компонент отримував фокус введення при натисканні мишкою як і інші компоненти, або треба обробляти OnMouseDown?


> Або треба обробляти OnMouseDown?

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

А як зроблено в стандартних компонентах?
Поліз дивитися вихідні ListBox "а, але щось не можу знайти як у нього це реалізовано.


> Mishenka # XA0; (25.10.06 10:22) # XA0;
> Пишу компонент нащадок TCustomControl. зробив обробку
> Події OnEnter для обробки отримання фокусу.

Два пропозиції взаімонесвязанние. Подія OnEnter не для розробника компонента, а для розробника використовує компонент.

> Mishenka # XA0; (25.10.06 10:51) [2]
> А як зроблено в стандартних компонентах?

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


> Два пропозиції взаімонесвязанние. Подія OnEnter не для
> Розробника компонента, а для розробника використовує компонент.

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

> Mishenka # XA0; (25.10.06 10:22) # XA0;

> Як зробити щоб компонент отримував фокус введення при натисканні мишкою

Наскільки пам'ятаю, треба замістити конструктор і там встановити в ControlStyle прапор, який дозволяє контроль отримувати повідомлення миші. Уточніть по довідці.

А у мене працювало і так:

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

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

тобто повідомлення мишки приходять і так

Схожі статті