Главная страница
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.48 MB
Время: 0.014 c
14-35446
sakses
2002-07-18 10:49
2002.08.12
PDF--> Doc


14-35459
MAN-IN-RED
2002-07-15 20:12
2002.08.12
Нужна крутая библиотека по работе со звуком!


1-35352
ilg
2002-07-30 13:25
2002.08.12
OnClick для компонента


4-35492
Belov
2002-06-04 12:39
2002.08.12
Создание ярлыков


6-35396
KPOT
2002-05-09 13:22
2002.08.12
Как проще всего сразу отказать клиенту ?