AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TSave Dialog Exception

Ein Thema von Dunkelbunt27 · begonnen am 13. Mai 2011 · letzter Beitrag vom 14. Mai 2011
 
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: TSave Dialog Exception

  Alt 13. Mai 2011, 22:30
Irgendie hast du das mit dem try .. finally wohl noch nicht verstanden
Delphi-Quellcode:
MyObject := TMyObject.Create; // Instanz erzeugen

try // Hier beginnt der Schutzblock

  MyObject.DoSomeThing; // Beliebig viele Sachen durchführen

  // und egal was hier drinnen passiert (z.B. eine Exception)

finally // wird das hier ausgeführt
  MyObject.Free; // Instanz aus dem Speicher entfernen
end;
Dein Konstrukt
Delphi-Quellcode:
function Speichern_mit_Dialog : boolean;
var Speicher_Pfad : string;
    Ordner_Pfad : string;
    Datei_Name : string;
begin

  try

  ...

  finally
    Result := True;
  end;
  ...
end;
ist völlig unsinnig ... auch wenn ein Fehler auftritt, dann soll der Rückgabewert True sein?
Ok, dann reicht das völlig aus (fragt sich nur wozu dann eine Funktion
Delphi-Quellcode:
function Speichern_mit_Dialog : boolean;
var Speicher_Pfad : string;
    Ordner_Pfad : string;
    Datei_Name : string;
begin

  // Kein try mehr

  Result := True; // Result setzen ...

  // Hier jetzt dein Rest-Code

  Programm.SpeicherDialog.InitialDir := Dokumente_Pfad;

  if Programm.SpeicherDialog.Execute = True then
    begin
      Datei_Name := ExtractFileName(Programm.SpeicherDialog.FileName);
      Ordner_Pfad := Dokumente_Pfad+'\'+ChangeFileExt(Datei_Name,'');
      if not DirectoryExists(Ordner_Pfad) then
            ForceDirectories(Ordner_Pfad);

      Speicher_Pfad := Ordner_Pfad+'\'+Datei_Name;
      AktuellerDateiName := Speicher_Pfad;
    {***Speichern***}
      if Speichern(Speicher_Pfad) = True then //Das eigentlich speichern ist unwichtig, es verursacht den Fehler nicht (getestet)
        ShowMessage('Speichern erfolgreich.')
          else
            ShowMessage('Speichern abgebrochen.');
    end;

end;
Und GAAAAANZ wichtig so bitte nie niemals nicht
Delphi-Quellcode:
if Programm.SpeicherDialog.Execute = True then

if Speichern(Speicher_Pfad) = True then
Das reicht aus und funktioniert immer
Delphi-Quellcode:
if Programm.SpeicherDialog.Execute then

if Speichern(Speicher_Pfad) then
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (13. Mai 2011 um 22:34 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:57 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