Форум: "Основная";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];
ВнизImageList глючит Найти похожие ветки
← →
Igor__ (2003-09-02 19:23) [0]Есть ImageList связан с ListView.
Если в ImageList засунуть иконку в DesignTime, то все OK.
Но если, ту же икону грузить в RunTime, то она рисуется с черными краями.
Использовать чисто ХР-шные иконы(с другими все ОК).
Собственно код:
var
i:TIcon;
fi:TSHFileInfo;
begin
i:=TIcon.Create;
i.LoadFromFile("1.ico");
imageList1.AddIcon(i); //Присвоение в сабж
Canvas.Draw(0,0,i); //На форме икона рисуется нормально
i.Free;
end;
← →
Igor__ (2003-09-02 22:12) [1]Никогда не поверю, что никто никогда не исользовал ListView с подгружаемыми картинками.
← →
KSergey (2003-09-03 07:39) [2]Возможно, надо поиграться со свойствами ImageList: DrawingStile, BlendColor. Короче точно не знаю, но есть подозрение, что не установился цвет. который считать прозрачным...
← →
Карелин Артем (2003-09-03 09:28) [3]Было тако на корявых дровах у видеокарты от S3. Да и на ATI GeForce 400 замечал...
← →
Igor__ (2003-09-03 16:47) [4]Иконка нормально рисуется при:
1. Рисование иконки минуя ImageList;
2. Присвоения иконы в DesignTime.
Иконка нормально не рисуется при:
1. Рисуя с помощю ImageList + Присваивание иконки в RunTime;
Вывод: глючит Imagelist.AddXXXX(перепробовал все) и соответственно Imagelist_AddXXXX(из CommCtrl).
P.S.
Неужели действительно никто с этим не сталкивался????
← →
Johny B. (2003-09-04 05:19) [5]вот тебе интересная весчь:
попробуй, в DesignTime, добавить в ImgList одну XP-шную иконку.
------------------------------------------------------------
XP-шные иконки - такие красявые картинки в формате ICO
с 8-битным альфа-каналом (в основном, есть и др. форматы).
------------------------------------------------------------
все работает? а теперь попробуй добавить сразу _несколько_ XP-шных иконок )) на первый взгляд ок, но, если присмотреться, добавляются они без прозрачности ))
-------------------
вообще, я (а можети кто-то еще) придумал хороший способ хранить программные иконки и, в случае чего, их оперативно обновлять.
вся фишка в том, что ImgList храниться на форме, в DLL. (как ты уже знаешь, ресурсы (RES) не могут хранить XP-шные иконки)
иконки, лежащие в ImgList-е разбей на группы и вставь между ними пустые иконки (для экономии места), чтобы потом можно было без проблем добавить новые картинки без сдвига индекса иконок.
в конце концов грузим из программы эту DLL-ку и начинаем, по очереди до конца ImageList перебрасывать картинки в ImgList основной программы ......
на самом деле реализуется все довольно просто.
← →
Igor__ (2003-09-04 21:47) [6]
> ресурсы (RES) не могут хранить XP-шные иконки
Ну это как посмотреть, ведь в Shell32.dll иконок много и все ХР-шные.
А вообще метод интересный, но мне не подходит :((
Мне нужно создать список файлов. Я делаю с исользованием ListView. И при добавлении файлов, я узнаю иконку файла и добавляю ее в ImageList. И тут собственно сабж.
Я вижу 2 выхода:
1. Добить ImageList.
2. Сделать, что-то типаarray of HIcon
.
Но при втором варианте, опять проблема - как нарисовать иконку выделеной(...).
Помогите плз., а то делаю проект и в процессе роботы сильно глаза пудрят прошлые недороботки.
← →
Igor__ (2003-09-05 16:14) [7]Up
← →
Igor__ (2003-09-06 15:57) [8]Up
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c