![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите плиз, как сделать,чтоб при наведении на ComboBox1 он о
JUS © (2004-08-18 22:03:00)Подскажите плиз, как сделать,чтоб при наведении на ComboBox1 он открывался без нажатия на него?
Алхимик (2004-08-24 23:30:00) [1]
> [6] GEN++ © (24.08.04 23:13)
> Без API не обойтись - ComboBox не имеет событи onMouseMove
Имеет, правда оно заныкано у предка TControl в разделе protected.
Делаем так:
type
THackCombo = class(TComboBox);
...
THackCombo(ComboBox1).OnMouseMove := MyMouseMove;
...
procedure TForm1.MyMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
ComboBox1.DroppedDown := true;
end;
SUBJ достигнут.
GEN++ (2004-08-24 23:13:00) [2]Без API не обойтись - ComboBox не имеет событи onMouseMove.
Mim1 (2004-08-24 21:12:00) [3]Почитайте книгу про програмирование в Delphi, раздел про обработку сообщений Windows в компонентах.
Jus (2004-08-24 21:09:00) [4]В каком событии это писать?
JUS (2004-08-19 19:50:00) [5]Эти обработчики WinApi? если да то я в нём плохо разбираюсь, но попрубую. Спасибо.
piople (2004-08-19 05:48:00) [6]Попробуй обрабатывать CM_MOUSEENTER (наведение курсора на компонент), в котором твоему Комбо будет посылаться CB_SHOWDROPDOWN. Ну и незабудь CM_MOUSELEAVE обрабатывать чтобы потом закрыть комбо.
Dimaxx (2004-08-18 23:21:00) [7]Пошли ему CB_SHOWDROPDOWN, он и откроется.