Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.10;
Скачать: 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 вся ветка

Текущий архив: 2002.10.10;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.014 c
1-31701
dim-
2002-09-29 21:15
2002.10.10
Сохранение формы


3-31648
AM
2002-09-20 11:07
2002.10.10
Просьба помочь с запросом...


7-32048
Metallica
2002-07-29 20:30
2002.10.10
Как вызвать


1-31806
Diman-Far
2002-10-02 09:37
2002.10.10
RichEdit select


1-31801
Gayrus
2002-09-28 14:28
2002.10.10
Глобальный поиск