Thema: Delphi Resourcen auflisten

Einzelnen Beitrag anzeigen

TonyMontana
(Gast)

n/a Beiträge
 
#1

Resourcen auflisten

  Alt 22. Jan 2008, 18:40
Kann mir jemand sagen, wie ich folgenden Quelltext anpassen muss, damit alle Resourcen korrekt aufgelistet werden?

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, StdCtrls, Menus;

type
  TForm1 = class(TForm)
    TreeView1: TTreeView;
    PopupMenu1: TPopupMenu;
    GetResources1: TMenuItem;
    procedure GetResources1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  NewNode: TTreeNode;
  Start: TTreeNode;

implementation

{$R *.DFM}

function EnumNamesFunc(hModule:THandle; lpType, lpName:PChar; lParam: DWORD):BOOL; stdcall;
begin
  Result := True;
  Form1.TreeView1.Items.AddChild(Start, lpName);
end;

function EnumTypesFunc(Handle: THandle; lpszType: PChar; lParam: DWORD):BOOL; stdcall; // --> Parameter Dekl. korrekt?
begin
 Result := True;
 Start := Form1.TreeView1.Items.AddChild(NewNode, 'bla');
//Start := Form1.TreeView1.Items.AddChild(NewNode, lpszType); --> funktioniert nicht!
 EnumResourceNames(0, lpszType, @EnumNamesFunc, 0);
end;

procedure TForm1.GetResources1Click(Sender: TObject);
begin
   TreeView1.Items.BeginUpdate;
   TreeView1.Items.Clear;
   NewNode := TreeView1.Items.Add(nil, 'Resources');
   EnumResourceTypes(0, @EnumTypesFunc, 0);
   TreeView1.FullExpand;
   TreeView1.Items.EndUpdate;
end;

end.
Das Problem ist, dass nur Resourcen aufgelistet werden, dessen ID ein String ist und komischerweise(?) gar keine Resourcen aufgelistet werden, sobald ich die lpszType Variable benutze (siehe auskommentierte Zeile oben)!

Dann noch ne kleine Frage am Rande, ist die Parameter Deklaration der Funktion EnumTypesFunc so korrekt? Ich tuhe mich immer schwer, von C nach Delphi zu übersetzen. Vielleicht kann mir der ein oder andere ja einen Tip geben, wo ich nachschauen kann wie die Pendants bestimmter Variablentypen von C in Delphi aussehen!

Eine kleine Frage noch ... THandle ist doch gleich Integer. Aber Handles sind doch immer positiv oder 0? Dann könnte ich doch gleich Cardinal nehmen, oder???

Danke!
  Mit Zitat antworten Zitat