Главная страница
    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.014 c
15-1157999150
Furyz
2006-09-11 22:25
2006.10.01
КПК , нужен кпк , что посоветуете


2-1157628191
kot`s
2006-09-07 15:23
2006.10.01
DBLookupComboBox


1-1155917134
Kubivan
2006-08-18 20:05
2006.10.01
Вопрос по реестру


2-1158085540
Kiril
2006-09-12 22:25
2006.10.01
Условный путь?


3-1154020959
a123
2006-07-27 21:22
2006.10.01
Комментарии в SQL запросах





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