Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
7-35476
roadstar
2002-05-29 14:23
2002.08.12
Как програмно открыть папку


7-35477
omckma
2002-05-15 10:41
2002.08.12
Системная дата и время


4-35514
Владислав
2002-06-04 12:44
2002.08.12
Mouse hook


3-35183
alextov
2002-07-23 10:41
2002.08.12
Как присвоить TField.NewValue значение null ?


14-35438
ricks
2002-07-05 18:48
2002.08.12
И все-таки DirectSound FX





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский