![]() |
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? |
Re: TFileSaveAs und Execute abbrechen
Hi,
im Ereignis BeforeExecute:
Delphi-Quellcode:
Cu, Frank
procedure TForm1.FileSaveAs1BeforeExecute(Sender: TObject);
begin if not <Bedingung> then Abort; end; |
Re: TFileSaveAs und Execute abbrechen
Danke, das funktioniert :)
|
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:
Warum braucht man da diesen Event???
if not meine_Bedingung and SaveAsDialog.Execute() then begin
...irgendwas... end; Klär mich doch bitte mal einer auf. |
Re: TFileSaveAs und Execute abbrechen
Zitat:
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). |
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: |
Re: TFileSaveAs und Execute abbrechen
Zitat:
Das Problem kenne ich :) Gibt es eigentlich schon Brillengläser, die schmutzabweisend sind? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:59 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 by Thomas Breitkreuz