Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.18;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.028 c
14-58904
Некрофил - затейник__(тот которого в ридонли закинули)
2003-08-29 11:03
2003.09.18
Меня на долго в readonly закинули?


3-58582
AlexWeb
2003-08-26 16:58
2003.09.18
Почему база созданная на IB 4.x не открывается в IB 6.X.


3-58593
fool
2003-08-26 17:00
2003.09.18
LookUp поле в ADODataSet


14-58832
Председатель комиссии
2003-08-30 19:17
2003.09.18
Мастера Delphi: опрос


14-58891
CrazyHackers
2003-08-29 14:26
2003.09.18
Помогите с функцией определения даты начала недли