Delphi-PRAXiS
Seite 2 von 2     12   

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/)
-   -   Sender: TSaveDialog or TOpenDialog (https://www.delphipraxis.net/67531-sender-tsavedialog-topendialog.html)

Hawkeye219 16. Apr 2006 16:50

Re: Sender: TSaveDialog or TOpenDialog
 
Das Posten sollte möglich sein, aber bitte als Attachment, sonst gibt's Ärger mit den Moderatoren. :wink:

Falls es sich um ein vollständiges Projekt handelt, wäre vielleicht die Freeware-Sparte geeigneter. Vielleicht könnte einer der (mitlesenden) Mods dazu was sagen?

Gruß Hawkeye

Martin W 16. Apr 2006 16:54

Re: Sender: TSaveDialog or TOpenDialog
 
Das werde ich dann wohl als neuen Thread machen :-) Und noch mal ne dumme Frage:

Delphi-Quellcode:
type
  TDialogType = (dtOpen, dtSave);

procedure Tserver_mainform_form.ExecuteDialog(AOnCanClose: TCloseQueryEvent; AType: TDialogType);
  var lOpenDialog : TOpenDialog;
      lSaveDialog : TSaveDialog;
begin
  case AType of
    dtOpen:
      begin
        lOpenDialog := TOpenDialog.Create(server_mainform_form);
        try
          lOpenDialog.DefaultExt := 'xml';
          lOpenDialog.Filter := 'XML File / xml|*.xml';
          lOpenDialog.Title := 'Datei öffnen...';
          lOpenDialog.OnCanClose := AOnCanClose;
          lOpenDialog.Options := [ofHideReadOnly,ofFileMustExist,ofEnableSizing];
          lOpenDialog.Execute;
        finally
          lOpenDialog.Free;
        end;
      end;
    dtSave:
      begin
        lSaveDialog := TSaveDialog.Create(server_mainform_form);
        try
          lSaveDialog.DefaultExt := 'xml';
          lSaveDialog.Filter := 'XML File / xml|*.xml';
          lSaveDialog.Title := 'Speichern unter...';
          lSaveDialog.OnCanClose := AOnCanClose;
          lSaveDialog.Options := [ofOverwritePrompt,ofHideReadOnly,ofEnableSizing];
          lSaveDialog.Execute;
        finally
          lSaveDialog.Free;
        end;
      end;
  end; // case AType  
end;
Wie komme ich jetzt innerhalb der an "AOnCanCLose" übergebenen Prozedure an dem Dateiname / Pfad der in dem Dialog eingegeben wurde???

Gruß

fkerber 16. Apr 2006 16:57

Re: Sender: TSaveDialog or TOpenDialog
 
Hi!

Zitat:

Zitat von Hawkeye219
Falls es sich um ein vollständiges Projekt handelt, wäre vielleicht die Freeware-Sparte geeigneter.
Gruß Hawkeye

Die OpenSource-Sparte würde sich sogar noch besser eignen :wink:

Wenns noch kein fertiges Projekt ist, du aber Fragen hast, dann kannst du es ja bei "Sonstige" unterbringen.


Ergänzung zu AoCanClose:
Diese müsste doch auf den Dialog zugreifen können, oder? Also lSaveDialog.Filename, oder?


Ciao Frederic

Martin W 16. Apr 2006 17:03

Re: Sender: TSaveDialog or TOpenDialog
 
Auf eine Variable zugreifen, die innerhalb einer anderen Prozedur geschrieben wurde???

fkerber 16. Apr 2006 17:05

Re: Sender: TSaveDialog or TOpenDialog
 
Hi!

Zitat:

Zitat von Martin W
Auf eine Variable zugreifen, die innerhalb einer anderen Prozedur geschrieben wurde???

Auf eine Property eines Dialoges....
Hast du es mal versucht?

Ciao Frederic

Martin W 16. Apr 2006 17:17

Re: Sender: TSaveDialog or TOpenDialog
 
Property ...??? Was ist dies??? Die Onlinehilfe ist nicht sehr aussagekräftig..

Gruß

Hawkeye219 16. Apr 2006 17:26

Re: Sender: TSaveDialog or TOpenDialog
 
Wenn Deine Ereignisbehandlungsroutine aufgerufen wird, erhältst Du im Parameter Sender einen Zeiger auf den Dialog. Durch einen TypeCast kannst Du dann auf alle Eigenschaften des Dialogs zugreifen:

Delphi-Quellcode:
procedure TForm1.OpenDialog1CanClose(Sender: TObject; var CanClose: Boolean);
begin
  Dateiname := (Sender AS TOpenDialog).Filename;
end;
Das funktioniert sogar für TSaveDialog, weil TSaveDialog von TOpenDialog abgeleitet wurde.

Gruß Hawkeye

Martin W 16. Apr 2006 17:27

Re: Sender: TSaveDialog or TOpenDialog
 
Danke.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:57 Uhr.
Seite 2 von 2     12   

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