Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.10;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.033 c
1-31886
vixic
2002-09-30 10:12
2002.10.10
командная строка


3-31665
Leny
2002-09-20 14:30
2002.10.10
Добавить программно запись в БД


1-31813
Slanik
2002-10-02 11:01
2002.10.10
Иерархическая структура


14-31979
CrazyAngel
2002-09-16 13:50
2002.10.10
Конторский траффик


1-31876
3d
2002-09-29 16:20
2002.10.10
Как сделать, чтобы с формы нельзя было никуда переулючиться...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский