Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.217.67.16] |
|
Сообщ.
#1
,
|
|
|
Нужно сделать нечто очень похожее на ComboBox, но чтобы вываливалась Panel вместо списка.
Понимаю, вопрос довольно пространственный, посему для начала прошу подсказать направление, от чего наследоваться и что переопределить добавить. Можно TCustomEdit + TSpeedButton + TPanel. А может как-то по другому? |
Сообщ.
#2
,
|
|
|
Перехватывать CB_SHOWDROPDOWN и отрисовывать свою панель в нужном месте.
|
Сообщ.
#3
,
|
|
|
хм. отрисовывать где? как?
если просто при CB_SHOWDROPDOWN помещать панель под ComboBox, то сверху панели ComboBox все равно отрисует свой лист(даже если он пустой) Или я чего не так понимаю? |
Сообщ.
#4
,
|
|
|
Тебе нужно заблокировать это сообщение и сделать на него свою реакцию. Чичас времени эксперементировать нет...
|
Сообщ.
#5
,
|
|
|
TExCombo= class(TCustomComboBox) private procedure WndProc(var Message: TMessage); override; end; procedure TExCombo.WndProc(var Message: TMessage); begin if Message.Msg = CB_SHOWDROPDOWN then Text := 'CB_SHOWDROPDOWN' else inherited; end; так не катит. Я вообще пока не понимаю когда ComboBox получает это сообщение. Буду копать, может еще у кого какие мысли есть по этому ? |