Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Картинка из другой DLL


Автор: Budy 21.1.2005, 19:19
Есть DLL, в ней картинки. Таких DLL несколько, но имя картинки одинаковое.
Сначала использовал одну, которую запихнул в ресур проекта. Доставал так:
Код

var
 BMap: TBitMap;
begin
 with Im.Canvas do
   begin
     BMap:=TBitMap.Create;                  
     BMap.LoadFromResourceName(HInstance,'BigImage.jpg');

Тут конечно ясно что проблема с HIstance, вот только не могу понять как вместо него указать свою библиотеку, например 1.dll.

Автор: Rennigth 21.1.2005, 19:39
очень просто
Код

function LoadBitmapFromLibraryOfName(ABitMap : TBitMap; ANameResource : String) : boolean;
var
 HLib: THandle;
begin
 Result := Assigned(ABitMap);
 if Result then
 begin
   HLib := LoadLibrary('kmsSysLBR.dll');
   try
     Result := (HLib > 32);
     if Result then
       ABitMap.LoadFromResourceName(HLib, ANameResource);
   finally
     FreeLibrary(HLib);
   end;
 end;
end;

function LoadBitmapFromLibraryOfID(ABitMap : TBitMap; AIDResource : Integer) : Boolean;
var
 HLib: THandle;
begin
 Result := Assigned(ABitMap);
 if Result then
 begin
   HLib := LoadLibrary('kmsSysLBR.dll');
   try
     Result := (HLib > 32);
     if Result then
         ABitMap.LoadFromResourceID(HLib, AIDResource);
   finally
     FreeLibrary(HLib);
   end;
 end;
end;


Добавлено @ 19:41
для универсальности можно имя Dll в параметре указывать, мне это просто было не нужно

Автор: Budy 21.1.2005, 19:57
Good!

Автор: Akella 22.1.2005, 10:33
Предлагаю исходники интересной программки? Для "выдерания" иконок из разных файлов. smile

Автор: Alex 22.1.2005, 11:42
dsergey Ваш пример не рабочий на половине файлов иконки найдены, но не отображаются. Есть проблемы при сохранении, если нажать на отмену.

Автор: Budy 22.1.2005, 14:54
dsergey, проблемка. Но доработать мона. smile

Автор: Akella 24.1.2005, 10:29
Цитата(Budy @ 22.1.2005, 14:54)
dsergey, проблемка. Но доработать мона. 

Так в чем дело?


Цитата(Alex @ 22.1.2005, 11:42)
dsergey Ваш пример не рабочий на половине файлов иконки найдены, но не отображаются. Есть проблемы при сохранении, если нажать на отмену.

Да, жаль, конечно, ноидея, то есть smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)