![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
икнока из Dll размером больше 32х32
San ciz © (2007-03-22 20:17:00)подскажите плиз как загрузить иконку из длл'а и установить на Timage размером НЕ 32х32 а, например 48х48 или 96х96...
делаю так:
var
DLL: THandle;
begin
DLL := LoadLibrary('деелел.dll');
Image1.Picture.Icon.LoadFromResourceName(DLL, 'I1');
FreeLibrary(DLL);
иконка в длле размером 48х48 а при загрузке она уменьшается до 32х32 че за?
Интересующийся (2007-03-23 17:28:00) [1]>Rouse_ © (23.03.07 17:22) [14]
Неважно, главное иконка отображается :)
Попробую на других машинах, может местный глюк....
Или нормальную иконку раздобуду на 256 цветов.
Rouse_ (2007-03-23 17:22:00) [2]
> Прошу прошение при перетаскивании FWIconEx1, у TImage в
> этом случае все нормально.
:)
Не получилось воспроизвести. У меня все нормально :)
Интересующийся (2007-03-23 16:49:00) [3]> Интересующийся (23.03.07 16:37) [10]
Может :)
Elen (2007-03-23 16:42:00) [4]
> Интересующийся (23.03.07 16:37) [10]
А может он CLX пишет.
Выдержка из хелпа :
CLX Reference
TIcon.LoadFromResourceName
Loads an icon resource into the icon object.
procedure LoadFromResourceName(Instance: Cardinal; const ResName: string);
Интересующийся (2007-03-23 16:41:00) [5]Интересующийся (23.03.07 16:34) [9]
>но к примеру при перетаскивании TImage по форме изображение...
Прошу прошение при перетаскивании FWIconEx1, у TImage в этом случае все нормально.
P.S.
Хотя там все дело в иконках может быть. Но в иконках идущих с компонентом 255(256) цветов отсутствует...
Интересующийся (2007-03-23 16:37:00) [6]Elen © (23.03.07 15:47) [8]
> А чего это энто должно выглядеть по другому?
Незнаю, надо у San ciz спросить. Но если я правильно про TImage предположил там вроде LoadFromResourceName() нет, а вот LoadFromStream(Stream:TStream) к примеру есть :)
Интересующийся (2007-03-23 16:34:00) [7]Rouse_ © (23.03.07 15:47) [7]
>Какие именно? Мог всего и не отловить, но при обкатке на 7-ой дельфи вроде глюков небыло :)
У мня по самому компоненту сильных претензий нет (тоже на 7 смотрел), но к примеру при перетаскивании TImage по форме изображение портится и становится черно-белым :). Есть еще несколько подобных глюков.
> Там же в архиве идут иконки...
Да Вы правы, на иконках из архива работает нормально, я проверял на иконках 32х32 255 цветов....
Rouse_ (2007-03-23 15:47:00) [8]
> Неплохая вещь если до ума довести, а пока есть несколько
> глюков.
> Мне они сильно не понравились.
Какие именно? Мог всего и не отловить, но при обкатке на 7-ой дельфи вроде глюков небыло :)
> Может быть Вы и правы. Но у меня иконок больше 32х32 сейчас
> нет, тем более в ДЛЛ.
Там же в архиве идут иконки...
Elen (2007-03-23 15:47:00) [9]
> И насколько я понимаю из представленного кода это TImage,
> а не TImageList :)
Я не анализирую код автора а предлагаю другой путь решения.
> Одного я понять немогу, почему тогда выглядит как Image1.
> Picture.Icon.LoadFromResourceName(DLL, 'I1'); а не так Image1.
> Picture.Icon.LoadFromStream(Stream:TStream);?
А чего это энто должно выглядеть по другому?
Интересующийся (2007-03-23 15:16:00) [10]>Elen © (23.03.07 11:44) [4]
И насколько я понимаю из представленного кода это TImage, а не TImageList:)
Данное утверждение строится на строчкеImage1.Picture.Icon.LoadFromResourceName(DLL, 'I1');...
Хотя автору следовало бы определить это еще в самом начале :)
San ciz (22.03.07 20:17)
Одного я понять немогу, почему тогда выглядит какImage1.Picture.Icon.LoadFromResourceName(DLL, 'I1');а не такImage1.Picture.Icon.LoadFromStream(Stream:TStream);?
Интересующийся (2007-03-23 15:03:00) [11]> Elen © (23.03.07 11:44) [4]
Может быть Вы и правы. Но у меня иконок больше 32х32 сейчас нет, тем более в ДЛЛ.
Но кажется мне в этом коде чего-то нехватает...
var
DLL: THandle;
begin
DLL:=LoadLibrary('деелел.dll');
Image1.Picture.Icon.LoadFromResourceName(DLL, 'I1');
FreeLibrary(DLL);
P.S.
К примеру как система понимает, что это иконка?
Elen (2007-03-23 11:44:00) [12]
> Интересующийся (23.03.07 09:44) [3]
Если не ошибаюсь то можно настроить TImageList на Width и heigth 48x48 или 96x96. А потом из этого листа вытаскивай иконку уже с правильным размером.
Интересующийся (2007-03-23 09:44:00) [13]> Rouse_ © (23.03.07 09:18) [1]
Неплохая вещь если до ума довести, а пока есть несколько глюков.
Мне они сильно не понравились.
В принципе я с помощью TImage отображаю иконки 32x32 256 цветов (вроде работает нормально), на 48x48 и остальных не проверял, нет у меня таких сейчас под рукой.
Интересующийся (2007-03-23 09:24:00) [14]Врзможно два варианта:
1. Иконка из ДПП приходит уже 32х32;
2. Она в самом компоненте пересчитывается в 32х32 (16 цветов).
Попробуй ее не в компонент загрузить, а Application или форма присвоить и посмотри результат.
На крайний случий на жескарь выгрази.
P.S.
Я лично придерживаюсь второго вырианта, и пологаю что в параметрах компонента или перенной (отвечающей за тип иконки) заложены 32х32.
Rouse_ (2007-03-23 09:18:00) [15]Можешь воспользоваться этим примером: http://rouse.drkb.ru/components.php#fwiconex