Autor Beitrag
stiftmaster
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149



BeitragVerfasst: Fr 26.02.10 13:18 
Hallo,

ich binde per {$R name.RES} ein paar externe Ressourcen direkt mit in die Exe ein. Beim Starten der Applikation speicher ich diese im Temp-Verzeichnis ab. Dafür verwende ich folgende Funktion:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure GetResData(const Resource: Cardinal; const OutFileName: string);
var
  Stream: TResourceStream;
begin
  Stream := TResourceStream.Create(hInstance, PChar('#' + IntToStr(Resource)),
    'FILE');
  try
    Stream.SaveToFile(OutFileName);
  finally
    Stream.Free;
  end;
end;


Dies klappt auch soweit ganz gut. Allerdings muss das Programm nun erweitert werden und ich steh vor folgendem Problem:

Bisher wurde die Funktion mit festen Werten aufgerufen => GetResData(3, 'Verzeichnis/name.txt'). Nun soll das ganze dynnamisch passieren, d.h. ich weiß weder wie viele FILE-Elemente es gibt noch wie die Namen heißen. Ich muss diese also anhand der mitgelieferten Ressourcen auslesen.

Ich brauch also eine String-Liste von 0 bis n die mir pro Listeneintrag den Namen der Ressource speichert. Hab leider nix passendes im Netz gefunden und bin daher auf eure Hilfe angewiesen.

Dankend

Stefan
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 26.02.10 19:02 
Du kannst Dir durch das Auswerten der EXE-Header sowie der Daten der RSRC-Section ein Resource-Directory auflisten lassen. In älteren Delphi-Versionen lag für einen Resourcen-Viewer mal ein Beispiel im Demo-Verzeichnis bei; den kann man dafür als Anhaltspunkt nehmen, auch wenn der extrem umständlich programmiert war.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.