Zitat:
Aber: Der Dialog will doch die Datei speichern und wenn ihm dies nicht gelingt, liefert Execute false zurück.
Der Dialog selbst liefert nur den FileNamen an die Anwendung zurück. Speichern tut der nix selbst.
jaklar, stimmt latürnich, um welche konfuse Ecke hab' ich denn da gerade mal wieder gedacht (versucht zu denken - ab in die Ecke mit mir).
Fazit, beim "Missbrauch" des OpenDialogs könnte das Problem also bestehen bleiben.
Hab' gerade mal ein bisserl rumgedaddelt (mit dem TJvOpenDialog).
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
JvOpenDialog1.Title := 'Speichern';
JvOpenDialog1.DefBtnCaption := 'speichern';
if JvOpenDialog1.Execute then begin
ShowMessage('jo, dat geht.');
end else begin
ShowMessage('warwohlnix.');
end;
end;
Sieht damit wie ein "normaler" Speicherndialog aus (jedenfalls mit Delphi 7 unter XP).
Was man da als Dateiname eingibt ist egal. Beim Klicken auf "speichern" ist Execute = true, beim Klicken auf Abbrechen wird's false. Der Dateiname muss syntaktisch richtig sein, andernfalls gibt's auch hier eine Fehlermeldung seitens des Dialoges