Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Hint, ComboBox [D6]


sergey2 ©   (2002-03-06 13:41:00) 

Привет.
Так получилось, что размер Combobox меньше чем длины строк текста, которые необходимо в нем отображать и выбирать. В выпадающем списке выдимы только части строк (остальное не влезает). Подскажите как сделать чтобы строка из выпадающего списка при наведении на нее мышкой полностью показывалась в Hint"е. или может быть можно сделать чтобы выпадающий список был шире самого Combobox"а. Заранее благодарен.


Song   (2002-03-06 17:43:00) [1]

См. также:


Occurs when the user opens the drop-down list by clicking the arrow at the right of the control.

property OnDropDown: TNotifyEvent;

Description

Write an OnDropDown event handler to implement special processing that needs to occur only when the drop-down list is activated.

Note: OnDropDown never occurs if the combo box does not include any items.


Song   (2002-03-06 17:40:00) [2]

Попробуй CB_SHOWDROPDOWN


sergey_2   (2002-03-06 16:47:00) [3]

Проверил.
почему то при открытии combo событие CB_GETDROPPEDSTATE не возникает (смотрел winsight32). Возникает cb_getcount, но и его не удается отловить. прям не знаю чего делать. :(


Song   (2002-03-06 15:42:00) [4]

private
Procedure WhetherComboBoxDropped(Var Msg:TMessage); message CB_GETDROPPEDSTATE;

....


Procedure TForm1.WhetherComboBoxDropped(Var Msg:TMessage);
Begin
// Наш комбобокс открылся
SendMessage(ComboBox1.Handle,CB_SETDROPPEDWIDTH,число_пикселей,0);
inherited;
End;


Число пикселей либо пиши фиксированным или вычисляй длину в пикселях самой большой строки в комбобоксе


sergey2   (2002-03-06 15:30:00) [5]

если можно пример PLZ


Song   (2002-03-06 15:17:00) [6]

Привет,
Отлови момент открытия через сообщение CB_GETDROPPEDSTATE, дальше посылай сообщение CB_SETDROPPEDWIDTH для задания ширишы клиентской области контрола, который описывает выпадающую область.


sergey2   (2002-03-06 14:19:00) [7]

не подходит. там листбокс, а у меня combo. - У combo нет события OnMouseMove :( и еще hint на выпадпающем списке почему то не показывается.


DieHard   (2002-03-06 14:00:00) [8]

см. http://delphi.vitpc.com/treasury/s001.htm


Наверх

Титульная страница Поиск, карта сайта Написать письмо