Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.008 c
3-58554
grusty
2003-08-27 12:10
2003.09.18
Вопрос по ADOQuery...


1-58632
Bezpal
2003-09-05 13:21
2003.09.18
Как сделать круглую или треугольную форму или форму - звезду


14-58878
Islander
2003-08-28 17:07
2003.09.18
Как быстро считать бинарник в переменную типа string?


1-58734
pechv
2003-09-07 12:12
2003.09.18
Видимость формы в Delphi


7-58929
DDDeN
2003-07-07 05:28
2003.09.18
Как использовать MessageBox без использования SysUtils?





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