Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
ВнизКак на иконке 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c