Главная страница
    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.045 c
15-1161329175
Maximaxi
2006-10-20 11:26
2006.11.12
Скачать Delphi 4


15-1161338685
КлЯкСа
2006-10-20 14:04
2006.11.12
Где найти и скачать документацию по FastReport (чтоб на русском)?


15-1161216641
Real
2006-10-19 04:10
2006.11.12
MIDI.RU - База композиций теперь только для "избранных"


2-1162130694
tmpfolder
2006-10-29 17:04
2006.11.12
Record + PString


15-1161346296
ArtemESC
2006-10-20 16:11
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский