Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.069 c
9-1073465597
mad0max
2004-01-07 11:53
2004.05.23
GLScene - Дырка :)


4-1080566809
ipnet
2004-03-29 17:26
2004.05.23
Вывод через TextOut своим шрифтом


11-1071311892
blanco
2003-12-13 13:38
2004.05.23
Позднее связывание


1-1084234798
ШТОРМ
2004-05-11 04:19
2004.05.23
как вывести на график результат?


9-1071948524
G A M E R
2003-12-20 22:28
2004.05.23
Оцените новую версию МЯСОПОВАЛА





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