Вниз
Скачать: CL | DM;

Как на иконке ListView нарисовать что-то   Найти похожие ветки 

← →
freak   (2004-05-08 19:31) [0]

Привет всем мастерам.

Вопрос такой. Есть ListView, ViewStyle := vsIcon. Как на иконке нарисовать что-то. Например что-нибудь на манер стрелочек в углу иконок, на рабочем столе Windows.


← →
Mim1 ©   (2004-05-09 00:07) [1]

Изменяйте содержимое imagelist связанного с listview.


← →
freak   (2004-05-09 01:47) [2]

Это примитивно. Тем более, что если у меня примерно 50 разных иконок и есть три разных ситуации в которых нужно что-то рисовать на иконке (например, подрисовывать в углу буквы A,B,C в зависимости от ситуации на данный момент), то необходимо иметь  150 иконок. Не думаю, что это лучший выход.


← →
KilkennyCat ©   (2004-05-09 03:46) [3]

Это единственный выход.
Только Вы не совсем правильно поняли совет Mim1. Разве он говорил о дополнительных иконках? Хватаете из imagelist связанного с listview нужную иконку, отрисовываете что хотите, запихиваете назад.


← →
Anatoly Podgoretsky ©   (2004-05-09 11:40) [4]

Сделай 51 иконку


← →
DVM ©   (2004-05-09 11:48) [5]

Owner Draw + WM_DRAWITEM - самому отрисовать итем + что угодно сверху.
Но самое быстрое все же - держать все иконки готовыми в ImageList.


← →
freak   (2004-05-10 16:02) [6]

Получается примерно так (см. ниже)? Просто, но работает. Только вот, как вернуть иконку в первоначальное состояние, если понадобиться. Опять изврат какой-нибудь придумывать (например еще один ImageList куда будут сбрасываться оригиналы)?

procedure TForm1.Button1Click(Sender: TObject);
var Znak,Bitmap:TBitmap;
begin
Znak:=TBitmap.Create;
Bitmap:=TBitmap.Create;
Znak.Transparent:=True;
ImageList2.GetBitmap(0, Znak);
ImageList1.GetBitmap(0, Bitmap);
Bitmap.Canvas.Draw(0,32, Znak);
ImageList1.ReplaceMasked(0,Bitmap,clNavy);
Znak.Free;
Bitmap.Free;
end;


← →
KilkennyCat ©   (2004-05-10 16:07) [7]


> (например еще один ImageList куда будут сбрасываться оригиналы)?


Просто два ImageList. Один с оригиналами, другой рабочий. Берете с оригинала, рисуете, пихаете в рабочий.  Можно один, рабочий, а оригиналы держать в одном bmp.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
14-1083251961
Mr.Credo
2004-04-29 19:19
2004.05.23
ico


14-1083307248
MBo
2004-04-30 10:40
2004.05.23
Пятница... Опять задачки ;)


7-1081846899
_Андрей
2004-04-13 13:01
2004.05.23
как из своей программы обработать Popup сообщение?


1-1084245986
Dark Man
2004-05-11 07:26
2004.05.23
Как заставить форму пропадать по подтверждению ???


14-1083087967
ИМХО
2004-04-27 21:46
2004.05.23
Выход в Инет через мобильник




   Наверх