Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];

Вниз

Иконки в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.012 c
3-47233
Oleon
2002-06-20 14:26
2002.07.15
BDE


1-47445
Катерина
2002-07-03 11:27
2002.07.15
ActivePage в TPageControl


14-47809
copyr25
2002-06-07 01:46
2002.07.15
---|Ветка была без названия|---


1-47584
AFROLOV
2002-06-28 11:43
2002.07.15
Ошибка при работе с DLL


8-47619
Королев
2002-03-06 08:51
2002.07.15
Как подключать DirectX8.1 SDK к Delphi?





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