Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.038 c
3-1158107950
NikAl
2006-09-13 04:39
2006.11.12
Компонента KeyDB


2-1162114969
Серый
2006-10-29 12:42
2006.11.12
Таймер


15-1161927720
clickmaker
2006-10-27 09:42
2006.11.12
Пятничные загадки


2-1161693795
RoLeX
2006-10-24 16:43
2006.11.12
Как узнать внешний ip адрес?


15-1161887904
Kerk
2006-10-26 22:38
2006.11.12
У меня столько энергии вырабатывается, что я ее гашу в труде (с)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский