|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.03.2007, 14:50 | #1 |
Пользователь
Регистрация: 15.01.2007
Сообщений: 72
|
Навести красоту в ListBox-е
по-моему ListBox Называется, лень счас заново Delphi запускать.. Вобщем выпадающий список...
Дело в другом.. У меня в программе там в ListBox добавляются записи.. Вот хотелось бы, чтобы записи создавались "с картинками", приблизительно вот так: " "->" текст строчки", где "->" - обычная картинка в Jpg, и вот в зависимости от параметров там должна то одна картинка перед строчкой помещаться, то другая.. Можно ли такое реализовать.. То есть чтобы посути эта картиночка была частью одной строкчи, а не фон общего раскрывающегося окна... Вы поняли про что я? Вобщем после всех добавлений при раскрытии мы должны увидеть нечто следующее: "->" Петя "->" Андрей "->" Вася "->" Коля "->" Аня "->" Таня "->" Марина Ну это я так, от балды... И, чтобы при выборе нужного пункта желательно, чтобы эта картиночка тоже поднималась в заголовок.... Можно ли подобное реализовать??? |
27.03.2007, 16:20 | #2 |
Форумчанин
Регистрация: 10.11.2006
Сообщений: 189
|
Конечно можно! Например так:
ставим свойство Style := lbOwnerDrawFixed В обработчике OnDrawItem описываем, как будет отрисовываться элемент, например: procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); begin if index mod 2 = 0 then ListBox1.Canvas.StretchDraw(Rect, Image1.Picture.Graphic); if index mod 2 = 1 then ListBox1.Canvas.StretchDraw(Rect, Image2.Picture.Graphic); end; Тут у меня в Image1 и Image2 разные картинки. В чётные элементы списка отрисовывается Image2 а в нечётные соответственно Image1. Это только пример, под свои нужды добей самостоятельно |
28.03.2007, 06:39 | #3 |
Пользователь
Регистрация: 15.01.2007
Сообщений: 72
|
Это понятно, что не чистый код скопирую.. А вот такой вопрос, можно эти картинки "вжывить" в exe-шник, то есть, чтобы прога брала их не из папки, а вот прям из самой себя? Чтобы перетаскивать приходилось только один exe-шник??
|
28.03.2007, 07:14 | #4 |
Пользователь
Регистрация: 15.01.2007
Сообщений: 72
|
Неработает.. Начну с того, что я перепутал объект)) Он нажывается ComboBox) А вот если тоже самое сотворить с комбобоксом, то в строке не получаем никакого текста, а только растянутую во всю строку стрелочку.
Предидущий вопрос, вроде, снимается |
28.03.2007, 16:00 | #5 |
Форумчанин
Регистрация: 10.11.2006
Сообщений: 189
|
Поскольку мы теперь сами отрисовываем елементы комбобокса, то текст тоже вручную нужно выводить
Код:
Последний раз редактировалось Umen; 28.03.2007 в 19:28. |
28.03.2007, 16:46 | #6 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
используй ресурсы. Информации по использованию ресурсов на форуме куча.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
29.03.2007, 00:03 | #7 |
_________
Пользователь
Регистрация: 27.03.2007
Сообщений: 69
|
Если с ресурсами, то можно так:
Создай в блокноте файл, например, C:\PECYPC.RC, в котором укажи все картинки, которые хочешь воткнуть в ресурс: KARTINKA BMPFILE адрествоейкартинки Чтобы откомпилировать его в ресурс, набери в командной строке: brcc32 C:\PECYPC.RC Получишь файл C:\PECYPC.RES Чтобы пользовать его, напиши в тексте программы {$R C:\PECYPC.RES} Ну а дальше разберёшься: Код:
|
29.03.2007, 08:43 | #8 |
Пользователь
Регистрация: 15.01.2007
Сообщений: 72
|
Спасибо.. Завтра только попробовать смогу, сегодня времени нету((
|
29.03.2007, 14:55 | #9 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
бог ты мой ))) а для чего тогда timagelist :D и такое нельзя делать если картинки разные будут ComboBox1.ItemHeight:=Image1.Pictur e.Height; !!! надо в обработчике OnMeasureItem ! :D удачи, и никаких jpeg и т.п. только битмапы использовать
|
30.03.2007, 11:58 | #10 |
Пользователь
Регистрация: 15.01.2007
Сообщений: 72
|
А нельзя поподробнее???
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ListBox | werser | Помощь студентам | 1 | 29.05.2008 22:32 |
ListBox | Witaliy | Общие вопросы Delphi | 10 | 27.04.2008 17:15 |
Listbox | Dexic | Помощь студентам | 1 | 24.06.2007 15:05 |
ListBox | lin | Помощь студентам | 1 | 04.06.2007 13:46 |