![]() |
Fehler bei Abbruch des Savedialogs
Hallo Leute,
bei mir stellt sich ein Problem ein, wenn ich versuche Daten mit dem unten angegebenen Savedialog zu speichern. Das Problem tritt auf, wenn ich den Savedialog während der Ausführung abbreche. Dann erhalte ich eine Fehlermeldung. Offensichtlich ist der Abbruch nicht vorgesehen und in meinem Code nicht abgefangen. Weiss da jemand Abhilfe? Mein Code: with SaveDialog1 do begin FileName:=SaveDialog1.FileName ; Filter:= 'Text-File (*.txt)|*.txt'; DefaultExt:= '*.txt'; If Execute then begin assignfile(f,Filename); rewrite(f); end; end; // End with SaveDialog1 do begin |
Re: Fehler bei Abbruch des Savedialogs
Hallo,
1. setze Deinen Delphi Code bitte in entsprechende Tags, wegen der Lesbarkeit. 2. Wenn Du Fehler abfangen möchtest, machst Du das bspw. so:
Delphi-Quellcode:
Edit: zur Erläuterung
If Execute then begin
try assignfile(f,Filename); rewrite(f); except //hier der Code, der bei einem Fehler ausgeführt werden soll end; end; Sollte in dem Bereich zwischen 'try' und 'except' ein Fehler auftreten, wird der Code ausgeführt, der zwischen 'except' und 'end' steht. |
Re: Fehler bei Abbruch des Savedialogs
Brrr. Dein Reihenfolge ist vollkommen falsch:
Wie soll SaveDialog1.FileName einen gültigen Wert haben wenn der Dialog noch nicht ausgeführt (Executed) wurde? :gruebel: |
Re: Fehler bei Abbruch des Savedialogs
Die Zeile
Delphi-Quellcode:
ist ja ziemlich sinnlos, oder? Du weißt einer Variablen sich selbst zu, also X=X.
with SaveDialog1 do begin
FileName:=SaveDialog1.FileName; Man könnte FileName schon vor dem Execute etwas zuweisen, um z.B. einen Vorgabenamen für den Savedialog einzustellen. Ansonsten ist der Abbruch natürlich vorgesehen, die Function Execute hat dann den Wert False und deine if-Bedingung ist nicht erfüllt. Wie lautet denn übrigens der Fehler? |
Re: Fehler bei Abbruch des Savedialogs
Zitat:
Vielleicht schwachsinnig - aber immerhin eine Antwort auf die Frage. Edit: sorry, habe guidoks Beitrag übersehen - der hat es ja bereits gesagt... Wieso kann man eigentlich eigene Beiträge nicht löschen? Dann würde man sich manchmal solche Peinlichkeiten wie jetzt ersparen können :oops: |
Re: Fehler bei Abbruch des Savedialogs
Delphi-Quellcode:
So kann man's auch machen. Da muss man keinen ganzen Block machen, nur weil 'ne Bedingung erfüllt wurde.
with SaveDialog1 do
begin Filter:= 'Text-File (*.txt)|*.txt'; DefaultExt:= '*.txt'; if not Execute then Exit; {...} end; |
Re: Fehler bei Abbruch des Savedialogs
Zitat:
Delphi-Quellcode:
oder
with SaveDialog1 do
begin Filter:= 'Text-File (*.txt)|*.txt'; DefaultExt:= '*.txt'; if not Execute then Exit; {...} end;
Delphi-Quellcode:
schreibe, spielt nun wirklich keine Geige - da spare ich bei letzterem Beispiel sogar noch das 'not' und das 'exit;' (sofern nur eine Anweisung folgt ein Reingewinn von acht Zeichen) :wink:
with SaveDialog1 do
begin Filter:= 'Text-File (*.txt)|*.txt'; DefaultExt:= '*.txt'; if Execute then {...} end; |
Re: Fehler bei Abbruch des Savedialogs
Zitat:
|
Re: Fehler bei Abbruch des Savedialogs
Zitat:
Das erste Codebeispiel zeigt die Verwendung eines try-except-Blocks. Da wird in keiner Zeile der Savedialog erwähnt. Das zweite Codebeispiel ist von Nuclear-Ping übernommen. Desweiteren habe ich lediglich Deine Frage beantwortet, wie es möglich ist, dass ein Savedialog eine gültige FileName-Eigenschaft haben kann, bevor er überhaupt ausgeführt worden ist - nicht mehr und nicht weniger. Sei bitte so fair, und lass das jetzt nicht so im Raum stehen, wie das manche Leute hier gerne mal tun, wenn sie ein Problem mit jemandem (oder dessen Aussagen) haben. |
Re: Fehler bei Abbruch des Savedialogs
Zitat:
|
Re: Fehler bei Abbruch des Savedialogs
Zitat:
Danke für die Aufklärung :) |
Re: Fehler bei Abbruch des Savedialogs
Zitat:
Du hast in deine Rechnung sicher nicht die ganzen Leerzeichen mit einbezogen, die man noch sparen würde - wenn zB nach dem Execute noch ein Begin folgen würde, das End nicht zu vergessen ... :mrgreen: |
Re: Fehler bei Abbruch des Savedialogs
Deswegen schrob -ähm- schrieb ich ja auch extra
Zitat:
|
Re: Fehler bei Abbruch des Savedialogs
Zitat:
//Edit: Bzw. wir haben ja sogar 2 (thx to Matze, dem Oberschlaumeier :stupid:): :tongue: |
Re: Fehler bei Abbruch des Savedialogs
Zitat:
Hey, Nuclear-Ping --- :tongue: :mrgreen: :wink: |
Re: Fehler bei Abbruch des Savedialogs
Zitat:
vielen Dank für die rege Resonanz!! |
Re: Fehler bei Abbruch des Savedialogs
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:48 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