Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.15;
Скачать: CL | DM;

Вниз

Иконки в ListView   Найти похожие ветки 

 
XShura   (2002-06-27 09:21) [0]

Всем привет! Помогите с решением.
У меня есть ListView на котором при помощи иконок отображается
состояние некоторых устройств (например : устройство в норме - синий квадратик, устройство неисправно - красный квадратик и т.д.), но у устройств может быть комбинация состояний : неисправно и заблокировано (должен быть красный квадратик с крестиком внутри), исправно и заблокировано (синий квадратик с крестиком внутри) и т.д. Вопрос, как мне имея "на руках" иконки с "простыми" состояниями (синий, красный квадратики, крестик и т.п.) отобразить их комбинацию в ListView ? На данный момент я все комбинации картинок занес в ImageList и путем несложных вычислений получаю номер нужной иконки. Спасибо.


 
MBo ©   (2002-06-27 09:26) [1]

Твой метод самый лучший


 
XShura   (2002-06-27 09:31) [2]

Если бы я видел код на мой вопрос, то я может быть и поверил ;)), но прикинь (на ты можно ? ;)) добавится хотя бы еще два состояния, которые необходимо отображать совместно с другими .... гиморно %-((


 
MBo ©   (2002-06-27 09:49) [3]

ну тогда что-нибудь подобное
procedure TForm1.Button1Click(Sender: TObject);
var b1,b2:TBitmap;
begin
b1:=TBitmap.create;
b2:=TBitmap.create;
imagelist1.GetBitmap(0,b1);
imagelist1.GetBitmap(1,b2);
b1.canvas.copymode:=cmMergePaint;//подбери режим
b1.canvas.draw(0,0,b2);
imagelist1.Add(b1,nil);
listview1.items[2].ImageIndex:=2;
end;


 
XShura   (2002-06-27 10:05) [4]

Ну вот, а говорил шо мой метод самый лучший ;) спасибо!! и маленький вопрос... неужели никак нельзя отвязаться при рисовании иконок от ImageList ? .. ну типа OnCustomDraw задействовать......


 
MBo ©   (2002-06-27 10:14) [5]

можно, но с ImageList IMHO удобнее


 
XShura   (2002-06-27 10:25) [6]

Понятно... ну тоды буду при загрузке формировать комбинации иконок и заносить их в ImageList, а потом уже действовать по своему алгоритму.

P.S. На форуме недавно, но уже нравится оперативность ответов :)) Спасибо создателям сайта, и тем кто отвечает на наши вопросы !


 
valery_f   (2002-06-27 12:46) [7]

Во первых - иконки не обязательно должны быть квадратными (только что попробовал 64х16), во вторых - содержимое ImageList"а на ходу можно перекручивать. К примеру, в зависимости от состояния можно создать битмап - комбинацию из простых элементов (ну, скажем, квадратики в ряд :) и вживую вкинуть их в ImageList.


 
XShura ©   (2002-06-27 13:36) [8]

Перекручивать то можно, но при этом будут изменяться картинки на всех пунктах ListView...


 
DieHard ©   (2002-06-27 13:43) [9]

А чем не устраивает вариант с использованием OverlayIndex?
Он как раз для таких ситуаций и нужен


 
XShura ©   (2002-06-27 13:52) [10]

А можно поподробнее об OverlayIndex ? ..... я просто не очень во всей этой графике шарю ;)


 
DieHard ©   (2002-06-27 14:20) [11]

В OverlayIndex указываешь индекс той картинки из TImageList, которая должна быть поверх основной. Например, крестик поверх квадратика. Левый нижний пиксель картинки с крестиком будет определять прозрачность. Единственная проблема (хотя может это только у меня такой глюк) - значения, при которых это всё работает, определяются опытным путем :) Например, OverlayIndex=0 - установить картинку, OverlayIndex=9 - снять


 
valery_f   (2002-06-27 15:02) [12]

> XShura © (27.06.02 13:36) Перекручивать то можно, но при этом будут изменяться картинки на всех пунктах ListView...

Да, но что тебе мешает сделать каждому пункту по своей картинке в ImageList"е? Вариант абсолютно рабочий!


 
XShura ©   (2002-06-27 16:21) [13]

Хм... тоже неплохой вариант ;) буду выбирать какой использовать.....


 
XShura ©   (2002-07-01 09:19) [14]

Всем привет! Со вставкой комбинаций картинок разобрался ... совмещал картинки по методу MBo, а работал с ними по методу valery_f... и как всегда небольшой вопрос ;) при вставке картинки в ImageList, ListView моргает :((, как от этого можно избавиться?



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

Текущий архив: 2002.07.15;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
6-47633
BAHO
2002-03-28 20:09
2002.07.15
Мониторинг компов в локалке...


1-47556
Йёти
2002-06-28 09:13
2002.07.15
TOwnedCollection


7-47847
Makor
2002-04-25 12:08
2002.07.15
Где взять русскую документацию по WDM


1-47597
sector
2002-06-28 19:29
2002.07.15
Обработка ошибок(исключительных ситуаций)


3-47238
Nonam
2002-06-20 17:03
2002.07.15
Пакеты Oracle