Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.23;
Скачать: 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 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.024 c
1-1083754763
uuuh
2004-05-05 14:59
2004.05.23
Простой вопрос.


6-1081233195
KJ
2004-04-06 10:33
2004.05.23
attachment


14-1083494958
Piter
2004-05-02 14:49
2004.05.23
Мания величия?


14-1083772753
Thor
2004-05-05 19:59
2004.05.23
Посещаете ли вы фитнес-клубы, качалки, спортзалы, etc.?


14-1083809091
Думкин
2004-05-06 06:04
2004.05.23
С днем рождения! 6 мая