Отримання фокусу компонентом.
Пишу компонент нащадок 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;
тобто повідомлення мишки приходять і так