Форум: "Основная";
Текущий архив: 2002.08.12;
Скачать: [xml.tar.bz2];
ВнизЗагрузка из 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c