Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с TListView 
:(
    Опции темы
Illusion Dolphin
  Дата 5.2.2004, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 36
Всего: 63



Хотелось бы каждому элементу задать своё изображение, которое выводилось бы при AdvancedCustomDrawItem (или тому подобному), но я нашёл только метод через Item.ImageIndex, который предусматривает создание сперва TImageList, но у меня будет очень много изображений (большой списочек), поэтому сразу всео не сделаешь, а для оптимизации хотелось бы иметь возможность прорисовки произвольного изображения (не из TImageList) в TListView... Не подскажите, как?


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
Paradox
Дата 6.2.2004, 06:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1135
Регистрация: 18.11.2002
Где: Россия

Репутация: нет
Всего: 1



А что если перед прорисовкой запихивать его в ImageList а потом уже рисовать ?


--------------------
---
PM MAIL WWW   Вверх
p0s0l
Дата 6.2.2004, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Для начала можешь попробовать что-нибудь типа этого:
Код
procedure TfrmMain.ListView1AdvancedCustomDrawItem(Sender: TCustomListView;
 Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage;
 var DefaultDraw: Boolean);
var
 Rect1 : TRect;
begin
 DefaultDraw := False;
 Rect1 := Item.DisplayRect(drIcon);
 ListView1.Canvas.Pen.Color := Item.Index * $204080;
 ListView1.Canvas.Ellipse(Rect1);
 Rect1 := Item.DisplayRect(drLabel);
 ListView1.Canvas.TextRect(Rect1, Rect1.Left+1, Rect1.Top+1, Item.Caption);
end;

PS: у ListView должно быть назначено соответсвующее свойство имейджов, т.е. для vsIcon стиля - LargeImages. ImageList может быть пустым, но он должен задавать размеры иконок...


--------------------
С уважением, г-н Посол.
PM   Вверх
Illusion Dolphin
Дата 6.2.2004, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 36
Всего: 63



Paradox, в коце концов удобнее вышло именно так, но есть одна проблемка... Когда добавляешь новый Item, то он перерисовывает всё содержимое, даже если этот итем сейчас оалеко за пределами видимой части. Каким образом запретить перерисовку?


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0687 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.