Главная страница
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.019 c
11-58608
Bartov
2003-01-09 01:19
2003.09.18
Зарубежные KOL компонент


3-58525
explorer
2003-08-28 09:56
2003.09.18
Бесплатные БД с поддержкой SQL


8-58788
gRad2003
2003-05-17 11:58
2003.09.18
midi->wav


4-58974
tlwlite
2003-07-15 20:16
2003.09.18
Как загрузить bitmap (исп. только win api)


1-58764
Тих
2003-09-05 22:01
2003.09.18
Возвращение памяти в 95/98