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

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

Загрузка из DLL ICO файла...


V.Turecky ©   (2002-07-30 14:54:00) 

Добрый день. Не могу загрузить из 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;


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

>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;


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

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

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


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

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


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

2Skier

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


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

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


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

2DiamondShark

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

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


2SPeller

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


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


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


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


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

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

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

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

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


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

procedure LoadIconfromDLL(TheICO: string; varThePicture : TPicture);


Наверх

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