Jo, funktioniert einwandfrei (zumindest bei mir) Allerdings einige verbesserungsvorschläge:

- Wenn ein benutzer das Abeitsverzeichniss des Programmes offen hat und damit hantiert fällt doch recht stark der umgang mit den Tempfiles auf. Könnte man afaik auch ohne lösen... man weis nie was DAU damit während der Laufzeit macht ^^

- Teste beim speichern ob der Endbenutzer den Dateinamen mit drangehängt hat... und wenn nicht, tu das im Code. Wenn ich ein Archiv als "test0r" abspeichere und unten *.bgm wähle, speichert er mir es nur als "testor" ohne Format.
Code:
if Length(ExtractFileEx(SaveDialog.FileName)) = 0 then  // uses SysUtils
  SaveDialog.FileName := SaveDialog.FileName + '.bgm';
Snippet nicht getestet