![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Загрузка из 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);