![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отрисовка в 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