Вниз
Скачать: CL | DM;

ComboBox с иконками (рядом с выбираемыми значениями)   Найти похожие ветки 

← →
Ago   (2002-09-30 15:00) [0]

Доброго времени суток! Подскажите как сделать сабж... я знаю, что надо играть на событии OnDrawItem, но мои попытки ни к чему не приводят:

У меня на форме ComboBox и ImageList

procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
ImageList1.Draw(ComboBox1.Canvas, Rect.Left, Rect.Top, Index);
end;

Можно какой нибудь пример кода?


← →
MBo ©   (2002-09-30 15:03) [1]

пример в хелпе по TListBox.OnDrawItem


← →
Ago   (2002-09-30 15:49) [2]

Нет примера в хелпе... по крайней мере ни в D5 ни в D4.


← →
MBo ©   (2002-09-30 15:57) [3]

в D5 есть.
Подробное руководство по использованию хелпа:
Help-Delphi Help - Указатель
Введите первые буквы...
Послушаемся и наберем ondrawi
в этот момент под OnDrawItem с изумлением видим слово example
Жмем стрелка вниз -Enter
О чудо!


← →
Толик ©   (2002-09-30 16:53) [4]

обработчик OnDrawItem для TComboBox. В ComboBox1.Objects[i] лежат HICON, которые и надо рисовать.

procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
const
IconWidth: longint = 16;
IconHeight: longint = 16;
var
Top_, Left_: longint;
begin
if(Control is TComboBox)then
with(Control as TComboBox) do begin
with(Items)do begin
Left_ := IconWidth;
Top_ := (ItemHeight - Canvas.TextHeight(Strings[Index])) div 2;
with(Rect)do
Canvas.TextRect(Rect, Left + Left_, Top + Top_, Strings[Index]);
Top_ := (ItemHeight - IconHeight) div 2;
Left_ := 0;
with(Rect)do
Windows.DrawIconEx(Canvas.Handle, Left + Left_, Top + Top_,
HICON(Objects[Index]), 0, 0, 0, Canvas.Brush.Handle, DI_NORMAL);
//end;//with
end;//with
end;//with
end;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.01 c
1-31674
Aleksandr
2002-09-27 15:02
2002.10.10
Как мне в консольном приложении выводить текст?


14-31949
NetBreaker666
2002-09-14 14:38
2002.10.10
Есть ли здесь кто-нибудь с МтМеха СПбГУ ??? Да, и фидошники ?


1-31735
KidMan
2002-09-30 22:24
2002.10.10
Exell и база данных


1-31861
Itap
2002-09-29 00:52
2002.10.10
Вопрос по TRichEdit.


7-32049
Vova M.
2002-07-25 10:24
2002.10.10
Платы видеозахвата и работа с ними.




   Наверх