Главная страница
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.011 c
14-31981
BizonWar
2002-09-16 14:30
2002.10.10
Crystal Reports


14-31966
Shadow
2002-09-15 21:30
2002.10.10
Я фигею.... Delphi - с***!!!!!!!!!!!


1-31709
Ne0N
2002-09-30 19:09
2002.10.10
Как создать файл собственного типа?


1-31672
AFrolov
2002-09-27 13:17
2002.10.10
Диалог для выбора ODBC источника


3-31613
Dmitrey
2002-09-19 09:09
2002.10.10
Проблема переноса с ADO2.5 на ADO2.7