Главная страница
    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.04 c
2-1162042509
Благодарный слушатель
2006-10-28 17:35
2006.11.12
Импорт таблиц из Word a


2-1161946280
dm37
2006-10-27 14:51
2006.11.12
Модальная форма


3-1158151719
DBLookupComboBox
2006-09-13 16:48
2006.11.12
и хранимая процедура


2-1161834050
LexXL
2006-10-26 07:40
2006.11.12
BeforeNavigate


8-1144338190
QuickFinder
2006-04-06 19:43
2006.11.12
TShockwaveFlash и его свойство Align





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский