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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ListView, извлечение иконки из Item 
:(
    Опции темы
artem1987
Дата 21.9.2006, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



я с помощью AddItems(str : string, Icon : TIcon) добавил объект, как мне его теперь от туда извлечь?
--------------------
Don't ask me why, ask me how.
PM MAIL   Вверх
Matematik
Дата 21.9.2006, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 17
Всего: 50



TIcon(lv2.Items[0].Data)
PM MAIL WWW ICQ   Вверх
artem1987
Дата 21.9.2006, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



у меня когда OwnerDraw=false то при добавлении ListViewe1.AddItem(string, TIcon) рисуются те иконки, что я добавил
затем я делаю OwnerDraw:=true и в событии ListView1DrawItem загружаю Item из файла : Icon.Loadfromfile('xxx.ico'); тоже все нормально,
но вот когда я в DrawItem делаю Icon:=TIcon(listview1.Items.Item[Item.Index].Data) не рисуется...в чем косяк?
--------------------
Don't ask me why, ask me how.
PM MAIL   Вверх
Matematik
Дата 21.9.2006, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 17
Всего: 50



Цитата(artem1987 @  21.9.2006,  11:07 Найти цитируемый пост)
в чем косяк?

В коде.
PM MAIL WWW ICQ   Вверх
artem1987
Дата 21.9.2006, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



+1, не мудрено, но дело в том что это весь рабочий код
ListViewe1.AddItem(string, TIcon)
Icon:=TIcon(listview1.Items.Item[Item.Index].Data) 
а вот тогда ещё вопрос строку получить которую я запихал с пом ListViewe1.AddItem(string, TIcon)
как можно?TString(listview1.Items.Item[Item.Index].Data) ?
я её получил так ListView1.Items[i].Caption !

Это сообщение отредактировал(а) artem1987 - 21.9.2006, 10:25
--------------------
Don't ask me why, ask me how.
PM MAIL   Вверх
volvo877
Дата 21.9.2006, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 14
Всего: 116



artem1987, что у тебя такое Item, ты можешь объяснить? Вот тут:
Цитата
Icon:=TIcon(listview1.Items.Item[Item.Index].Data)

PM MAIL   Вверх
Matematik
Дата 21.9.2006, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 17
Всего: 50



В OnDraw передается Item и это 
Icon:=TIcon(listview1.Items.Item[Item.Index].Data) 
можно заменить на
Icon:=TIcon(Item.Data);
----------------------------
Цитата(artem1987 @  21.9.2006,  11:21 Найти цитируемый пост)
а вот тогда ещё вопрос строку получить которую я запихал с пом ListViewe1.AddItem(string, TIcon)


Item.Caption
PM MAIL WWW ICQ   Вверх
artem1987
Дата 21.9.2006, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



ну когда возникает событие ListViewDrawItem у него вот эти параметры
 (Sender: TCustomListView;Item: TListItem; Rect: TRect; State: TOwnerDrawState)
оттуда и беру, но я пробовал и с 0м индексом вместо Item.Index
причем при простой отрисовке с помощью watches можно видеть что после
ListViewe1.AddItem(string, TIcon) в str := ListView1.Items[0].Caption;
хранится нужное значение а вот при входе в DrawI*tem похоже оно теряется

Добавлено @ 10:32 
оказывается OwnerDraw должно быть true, а OwnerData false если ты в DrawItem изменяешь только отрисовку а 
данные оставляешь прежние!!!как я сразу не догадался?
--------------------
Don't ask me why, ask me how.
PM MAIL   Вверх
Matematik
Дата 21.9.2006, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 17
Всего: 50



Ахтунг.
0-ой индекс это первая строка ListView.

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.0459 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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