Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

икнока из 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо