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

Вниз

Можно ли в Listbox вставить картинку?   Найти похожие ветки 

 
Crazy monkey   (2006-09-14 16:15) [0]

Есть записи и в зависимости от условий хотелось бы добавить к каждой свою картинку. Можно ли сделать такое в Listbox? Очень нужен код.
Заранее спасибо!


 
MBo ©   (2006-09-14 16:25) [1]

в справке по OnDrawItem есть пример


 
ГореПрограмист   (2006-09-14 16:54) [2]

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
 Rect: TRect; State: TOwnerDrawState);
begin
 ListBox1.Canvas.FillRect(Rect);
 ImageList1.Draw(ListBox1.Canvas, 1, 0, 0, true);
 ListBox1.Canvas.TextOut(Rect.Left + 19, Rect.Top + 1, ListBox1.Items.Strings[0]);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 ListBox1.Style:= lbOwnerDrawFixed;
end;



> Crazy monkey   (14.09.06 16:15)



> и в зависимости от условий


Каких условий ?


 
Crazy monkey   (2006-09-14 20:42) [3]

Условий достаточно много, но мне надо было знать главным образом как рисовать в listbox.

Спасибо за ответ!


 
Crazy monkey   (2006-09-14 21:24) [4]

А не подскажете как быть? Как заполнить все записи одной картинкой? Вот этот код:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
ListBox1.Canvas.FillRect(Rect);
ImageList1.Draw(ListBox1.Canvas, 1, 0, 0, true);
ListBox1.Canvas.TextOut(Rect.Left + 19, Rect.Top + 1, ListBox1.Items.Strings[0]);
end;


позволяет нарисовать картинку только в первой строке, а как нарисовать одну и туже картинку во всех строках, которые я добавил?


 
ЮЮ ©   (2006-09-15 03:19) [5]

Он рисует не одну, а много, но в одном месте. Для задания координат надо использовать Rect, как делаешь это в случае вывода текста


 
Джо ©   (2006-09-15 03:23) [6]

> позволяет нарисовать картинку только в первой строке, а
> как нарисовать одну и туже картинку во всех строках, которые
> я добавил?

OnDrawItem вызывается для каждой строки в списке. Номер текущей строки передается в параметре Index, текущая область рисования — в параметре Rect. Почитал бы, все-таки, Справку.


 
Джо ©   (2006-09-15 03:24) [7]

П.С. У "горе программиста" код несколько некорректен.


 
Германн ©   (2006-09-15 03:50) [8]


> Джо ©   (15.09.06 03:23) [6]
>
> > позволяет нарисовать картинку только в первой строке,
> а
> > как нарисовать одну и туже картинку во всех строках, которые
> > я добавил?
>
> OnDrawItem вызывается для каждой строки в списке. Номер
> текущей строки передается в параметре Index, текущая область
> рисования — в параметре Rect. Почитал бы, все-таки, Справку.
>
>

Уж сколько лет твердили миру... А воз и ныне там :-)
Ну как просто, типа "на пальцах" объяснить новичкам принцип "отрисовки" окон в Винде?


 
ГореПрограмист   (2006-09-15 05:44) [9]


> Crazy monkey   (14.09.06 21:24) [4]


procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
 Rect: TRect; State: TOwnerDrawState);
begin
 ListBox1.Canvas.FillRect(Rect);
 ImageList1.Draw(ListBox1.Canvas, Rect.Left + 1, Rect.Top, 0, true);
 ListBox1.Canvas.TextOut(Rect.Left + 19, Rect.Top + 1, Text);
end;


 
Crazy monkey   (2006-09-15 12:16) [10]

Спасибо уважаемые!
Особенно ГореПрограмист! Респект.

Конечный код я сделал таким:

ListBox1.Canvas.FillRect(Rect);
Form1.ImageList1.Draw(ListBox1.Canvas, Rect.Left + 1, Rect.Top, 0, true);
ListBox1.Canvas.TextOut(Rect.Left + 19, Rect.Top + 1, ListBox1.Items.Strings[index]);

Еще раз спасибо!



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

Форум: "Начинающим";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.021 c
2-1157979420
Viktop
2006-09-11 16:57
2006.10.01
Запуск bat-файлов


2-1158135307
Chaser
2006-09-13 12:15
2006.10.01
Как определить скорость копирования файла по сети


2-1157697862
qp
2006-09-08 10:44
2006.10.01
ConnectionString


6-1147041602
socketlamer
2006-05-08 02:40
2006.10.01
закачка с нескольких


2-1158095833
Doblclick
2006-09-13 01:17
2006.10.01
richedit





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский