Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.12;
Скачать: CL | DM;

Вниз

Загрузка из DLL ICO файла...   Найти похожие ветки 

 
V.Turecky   (2002-07-30 14:54) [0]

Добрый день. Не могу загрузить из DLL файла ICO файл и при этом не получаю никаких ошибок. Подскажите, что в коде неправильно?

//процедура загрузки из ресурсов DLL файла ICO
procedure LoadIconfromDLL(TheICO: string; ThePicture : TPicture);
var
h,r:cardinal;
IconIndex : word;
begin
IconIndex :=0;
h:=LoadLibraryA("Resource.dll");
r:=LoadIcon(h,MAKEINTRESOURCE(TheICO));
ThePicture.Icon.Handle:=r;
DrawIcon(Form1.Canvas.Handle, 10, 10, r);
FreeLibrary(h);
end;

//Использование
procedure TForm1.Button1Click(Sender: TObject);
begin
LoadIconfromDLL("ИМЯ_ЗНАЧКА", Image1.Picture);
end;


 
SPeller   (2002-07-30 15:00) [1]

procedure LoadIconfromDLL(TheICO: string; var ThePicture : TPicture);


 
DiamondShark   (2002-07-30 15:13) [2]

Попробуйте написать так

h:=LoadLibraryA("Resource.dll");
Win32Check(h <> 0);
r:=LoadIcon(h,PChar(TheICO));
Win32Check(r <> 0);

Если получите какие-то ошибки, тогда продолжим.

А DrawIcon то рисует что-нибудь?


 
V.Turecky   (2002-07-30 15:25) [3]


> А DrawIcon то рисует что-нибудь?


Да... Забыл упомянуть, что на форме то иконка рисуеться, а в Image1 загружаться не хочет.


 
V.Turecky   (2002-07-31 11:18) [4]

2DiamondShark

> h:=LoadLibraryA("Resource.dll");
> Win32Check(h <> 0);
> r:=LoadIcon(h,PChar(TheICO));
> Win32Check(r <> 0);

Добавил я проверки, но никаких ошибок нет и в Image1 загрузки значка тоже нет!


2SPeller

Если добавить VAR так как тогда использовать функцию, так -
LoadIconfromDLL("ИМЯ_ЗНАЧКА", Image1.Picture); - уже не выходит.


 
Skier   (2002-07-31 11:41) [5]

>V.Turecky
Ты проверь :
после h:=LoadLibraryA("Resource.dll"); h у тебя
случайно не ноль...


 
V.Turecky   (2002-07-31 11:52) [6]

2Skier

Да нет, загружаеться библиотека без проблем.


 
Skier   (2002-07-31 12:00) [7]

>V.Turecky
А как насчёт r - тоже не ноль ?


 
V.Turecky   (2002-07-31 12:14) [8]

Да тоже не ноль. DrawIcon ведь рисует, а Image не хочет. Ничего не понимаю.

Ребята, может, у кого-то есть другая функция загрузки значков из библиотеки?


 
Skier   (2002-07-31 12:30) [9]

>V.Turecky

Попробуй это : (у меня работает)


procedure LoadIconfromDLL(TheICO : String; ThePicture : TPicture);
var
ALib : THandle;
AIconHandle : THandle;
begin
ALib:=LoadLibrary(PChar("Resource.dll"));
AIconHandle:=LoadIcon(ALib,PChar(TheICO));
ThePicture.Icon.Handle:=AIconHandle;
DrawIcon(Form1.Canvas.Handle, 10, 10, AIconHandle);
FreeLibrary(ALib);
end;


Вызов :


procedure TForm1.Button1Click(Sender: TObject);
begin
LoadIconfromDLL("MAINICON", Image1.Picture);
end;



Страницы: 1 вся ветка

Текущий архив: 2002.08.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.015 c
1-35237
Gonzalez
2002-07-20 09:06
2002.08.12
Типизированный файл внутри *.exe


14-35424
Desdechado
2002-07-16 17:29
2002.08.12
Виртуальный диск под Win


1-35354
Sour
2002-07-30 14:22
2002.08.12
SWAP


3-35154
the-best-officeman
2002-07-19 18:39
2002.08.12
МАСТЕРА ! НУЖНА ВАША ПОМОЩЬ ! горю синем пламенем . уже догораю


4-35508
Sniffer
2002-06-04 15:12
2002.08.12
Форма