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

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

Отрисовка в TComboBox [D7, 2003]


ввв ©   (2008-02-19 20:39:00) 

Хочу сделать в CombBox: что бы при выпадающем списке (когда нажали на кнопку) каждый элемент этого списка был допустим в два раза больше по высоте, чем стандартный размер. В образовавшемся пространстве, хочу вписывать дополнительную информацию.

В обычном положении (не раскрытом) высота выбранного элемента должна оставаться традиционной.

Я не знаю с чего начать, а именно, как изменять выстоту Item при различных положениях (открытом списке или выбранном элементе).

Что подскажете?


trubin   (2008-02-19 21:31:00) [1]

procedure TForm1.ComboBox1MeasureItem(Control: TWinControl;
Index: Integer; var Height: Integer);
begin
if Index > -1 then
  Height := 20;  
end;


ввв   (2008-02-19 21:12:00) [2]

Про саму отрисовку в OnDrawItem - я понимаю. Но я не понимаю как изменить высоту пунктов только в выпадающем списке.

Может быть я не понимаю, но например: у меня у ComboBox установлен ItemHeight = 16, далее

procedure TForm1.ComboBox1MeasureItem(Control: TWinControl;
 Index: Integer; var Height: Integer);
begin
 Height := 20;  
end;


это меняет высоту везде (включая сам контролл без выпадающего списка).


trubin   (2008-02-19 20:55:00) [3]


> ItemHeight +


при Style = csOwnerDrawVariable лишнее


trubin   (2008-02-19 20:54:00) [4]

Style:= csOwnerDrawVariable +
ItemHeight +
OnMeasureItem +
OnDrawItem +
F1


Наверх

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