AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Icon aus DLL laden

Ein Thema von Pseudemys Nelsoni · begonnen am 23. Aug 2003 · letzter Beitrag vom 8. Aug 2015
Antwort Antwort
Seite 3 von 3     123   
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.123 Beiträge
 
Delphi 11 Alexandria
 
#1

Re: Icon aus DLL laden

  Alt 8. Nov 2003, 01:18
Moin Homer,

versteh' ich jetzt nicht so ganz, aber probier doch mal die Version mit dem LoadIcon (siehe weiter oben im Thread).
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von HomerGER
HomerGER

Registriert seit: 8. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#2

Re: Icon aus DLL laden

  Alt 8. Nov 2003, 03:46
moin christian
ich will nicht nur icon in die dll tun sondern auch bmp's
mit der function bekomme ich immer die meldung recource nicht gefunden
und mit der function die meinst
Delphi-Quellcode:
//******************************************************************************
//Global
//Icon aus Image.dll
Function Icon_Lesen_GU(icon_nr_s : String) : TIcon;
var
  h :HINST;
  ic :TIcon;
  i :integer;
begin
  h := LoadLibrary('Image.dll');
  if h <> 0 then
  begin
    ic := TIcon.Create;
    try
      ic.Handle := LoadIcon(h, PChar(icon_nr_s));
      Result := ic;
    finally
      ic.Free;
    end;
  end;
  FreeLibrary(h);
end;
und so rufe ich sie dann auf
Haupt_Form.Image1.Picture.Icon.Assign(Icon_Lesen_G U('Config_Icon1'));

bekomme ich immer eine Zugriffsverletzung
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.123 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Icon aus DLL laden

  Alt 8. Nov 2003, 12:19
Moin Homer,

hast Du auch schon mal die Kurzform probiert?

Delphi-Quellcode:
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;
Für Bitmaps gibt's auch LoadBitmap.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von HomerGER
HomerGER

Registriert seit: 8. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#4

Re: Icon aus DLL laden

  Alt 9. Nov 2003, 14:15
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
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.123 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Icon aus DLL laden

  Alt 9. Nov 2003, 14:26
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von HomerGER
HomerGER

Registriert seit: 8. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#6

Re: Icon aus DLL laden

  Alt 9. Nov 2003, 17:11
geschmackssache ???
nur so geht es. also bei icons.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.123 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Icon aus DLL laden

  Alt 9. Nov 2003, 20:19
Moin Homer,

wenn ich das so mache, kann ich das Icon, was ich zurückerhalten will auch als Parameter übergeben:

Delphi-Quellcode:
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;
Die Funktion lässt sich dann nur nicht so schön einbinden, aber ich habe eine bessere Übersicht über die belegten Resourcen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von HomerGER
HomerGER

Registriert seit: 8. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#8

Re: Icon aus DLL laden

  Alt 9. Nov 2003, 21:24
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;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:28 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