![]() |
Re: Icon aus DLL laden
Moin Homer,
hast Du auch schon mal die Kurzform probiert?
Delphi-Quellcode:
Für Bitmaps gibt's auch LoadBitmap.
Function Icon_Lesen_GU(icon_nr_s : String) : TIcon;
var h :HINST; begin Result := nil; h := LoadLibrary('image.dll'); try if h <> 0 then begin Result := TIcon.Create; Result.Handle := LoadIcon(h, PChar(icon_nr_s)); end; finally FreeLibrary(h); end; end; |
Re: Icon aus DLL laden
hier liegt die würze in der kürze
danke aber nur den handle übergeben .. hmm und nicht das icon ? verstehen tu ich es aber nicht |
Re: Icon aus DLL laden
Moin Homer,
da das Result als TIcon deklariert ist, wird ja nicht nur das Handle übergeben. Bei derartigen Funktionsergebnistypen würde ich das eh' eher so machen, dass das Ergebnis als Parameter zurückgeliefert wird, und nicht im Result. Ist aber wohl auch Geschmackssache. |
Re: Icon aus DLL laden
geschmackssache ???
nur so geht es. also bei icons. |
Re: Icon aus DLL laden
Moin Homer,
wenn ich das so mache, kann ich das Icon, was ich zurückerhalten will auch als Parameter übergeben:
Delphi-Quellcode:
Die Funktion lässt sich dann nur nicht so schön einbinden, aber ich habe eine bessere Übersicht über die belegten Resourcen.
function (const AsIconname : string;const AicResult : TIcon) : boolean; // true = Success
var h :HINST; begin Result := false; h := LoadLibrary('image.dll'); try if h <> 0 then begin AicResult.Handle := LoadIcon(h, PChar(AsIconname)); Result := true; end; finally FreeLibrary(h); end; end; |
Re: Icon aus DLL laden
ne las mal deine kurzform funktioniert wunderbar
genau so wie es haben wollt ich glaube es gib mit TICON ein generelles Problem auch aus einer resource oder dll zu laden hier meine function um es aus dll usw zu extrahieren
Code:
//******************************************************************************
// HauptFunction //Icon aus exe dll usw ins Image ausgeben Procedure Icon_Extract_GU(input_s : String; kompo_s : String); var bild_path_s : String; icon : TIcon; path_s : String; pos_i : Integer; index_i : Integer; begin try //Platzhalter ersetzen //für %Root% und so bild_path_s := Platzhalter_Ersetzen_GU(input_s); //Alles rücksetzen icon := TIcon.Create; path_s := ''; //Kein Komma verhanden if pos(',', bild_path_s) = 0 then begin bild_path_s := bild_path_s + ',0'; pos_i := pos(',', bild_path_s); end //Komma vorhanden else begin pos_i := pos(',', bild_path_s); end; //Path filtern path_s := copy(bild_path_s, 1, pos_i - 1); //Index filtern index_i := StrToInt(copy(bild_path_s, pos_i + 1, Length(bild_path_s))); icon.Handle := ExtractIcon(hInstance,PChar(path_s),index_i); (Haupt_Form.FindComponent(kompo_s) as TImage).Picture.Icon := icon; finally icon.Free; end; end; |
AW: Re: Icon aus DLL laden
Zitat:
in der DLL müssen die Namen der Icons in GROSSBUCHSTABEN stehen! Vllt erklärt das deine Fehlermeldung "nicht gefunden". Gruß, tcoman |
AW: Icon aus DLL laden
Der letzte Post ist fast 12 Jahre her :shock:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz