Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TFileSaveAs und Execute abbrechen (https://www.delphipraxis.net/87278-tfilesaveas-und-execute-abbrechen.html)

DevilsCamp 26. Feb 2007 12:39


TFileSaveAs und Execute abbrechen
 
Ich benutze in einem Projekt eine TFileSaveAs-Action.

Nun würde ich gerne im Ereignis prüfen ob eine bestimmte Bedingung erfüllt ist, bevor ich den Save-Dialog aufpoppen lasse. Ist diese Bedingung nicht erfüllt, so soll der Dialog nicht angezeigt werden. Leider habe ich keine Möglichkeit gefunden, die Anzeige des Dialogs zu verhindern.

Gibt es diese Möglichkeit überhaupt?

dataspider 27. Feb 2007 09:08

Re: TFileSaveAs und Execute abbrechen
 
Hi,

im Ereignis BeforeExecute:

Delphi-Quellcode:
procedure TForm1.FileSaveAs1BeforeExecute(Sender: TObject);
begin
  if not <Bedingung> then
    Abort;
end;
Cu, Frank

DevilsCamp 27. Feb 2007 09:19

Re: TFileSaveAs und Execute abbrechen
 
Danke, das funktioniert :)

hsg 27. Feb 2007 09:26

Re: TFileSaveAs und Execute abbrechen
 
Hmm,

ich muss gestehen, ich verstehe den Sinn nicht ganz. Normalerweise rufe ich doch an irgendeiner Stelle das Execute in meinem Programm-Source auf, also in etwa so:
Delphi-Quellcode:
if not meine_Bedingung and SaveAsDialog.Execute() then begin
...irgendwas...
end;
Warum braucht man da diesen Event???

Klär mich doch bitte mal einer auf.

DevilsCamp 27. Feb 2007 09:42

Re: TFileSaveAs und Execute abbrechen
 
Zitat:

Zitat von hsg
Hmm,

ich muss gestehen, ich verstehe den Sinn nicht ganz. Normalerweise rufe ich doch an irgendeiner Stelle das Execute in meinem Programm-Source auf, also in etwa so:
Delphi-Quellcode:
if not meine_Bedingung and SaveAsDialog.Execute() then begin
...irgendwas...
end;
Warum braucht man da diesen Event???

Klär mich doch bitte mal einer auf.

Folgende drei Events existieren:
OnBeforeExecute: Wird aufgerufen BEVOR der Save-Dialog geöffnet wird. Man kann dort also noch Dinge erledigen, wie Daten sortieren, formatieren, usw.
OnAccept: Ich habe auf "Speichern" geclickt.
OnCancel: Ich habe auf "Abbrechen" geclickt.

1. Da es sich um eine Action handelt, brauche ich mir SaveAsDialog nicht mehr selber aufrufen UND ich kann diese Action an unterschiedlichen Teilen des QuellCodes verwenden.
2. Durch die Unterteilung in diese drei Events ist der QuellCode aufgeräumter (finde ich jedenfalls positiv).

hsg 27. Feb 2007 10:38

Re: TFileSaveAs und Execute abbrechen
 
Ich sehe gerade: ich habe übersehen, dass es sich um eine Action handelt, dort hast du natürlich recht und dort sind die Events auch entsprechend sinnvoll.

Ich merke, meine Brille bedarf dringend einer gründlichen Reinigung. :lol:

DevilsCamp 27. Feb 2007 10:45

Re: TFileSaveAs und Execute abbrechen
 
Zitat:

Zitat von hsg
Ich merke, meine Brille bedarf dringend einer gründlichen Reinigung. :lol:

*gg*

Das Problem kenne ich :)
Gibt es eigentlich schon Brillengläser, die schmutzabweisend sind?


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz