Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Savedialoge und Endungen (https://www.delphipraxis.net/46232-savedialoge-und-endungen.html)

Delphi Star 20. Mai 2005 22:36


Savedialoge und Endungen
 
Kann man in einem Savedialog irgendwie eintellen, dass z.B. wenn als Dateityp Textdatei angegeben ist, der eingegebene Dateiname aber gar kein *.txt als Endung hat, dies automatsich hinzugefügt wird, sobald man auf Speichern klickt :?:

Gentleman 20. Mai 2005 22:50

Re: Savedialoge und Endungen
 
Hi!

Das müsste etwa so gehen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if SaveDialog1.Execute then
    begin
      if pos('.txt', SaveDialog1.FileName)> Length(SaveDialog1.FileName) - 4 then
        begin
          SaveDialog1.FileName:= SaveDialog1.FileName + '.txt';
        end;
    end;
end;
-> nicht getestet

[EDIT]Da musst du dann halt noch unterscheiden, welches Format ausgewählt ist.[/EDIT]

:hi:

Delphi Star 20. Mai 2005 22:53

Re: Savedialoge und Endungen
 
Nein, das meine ich nicht. Es soll vom Dialog aus geändert werden, damit die Überprüfungen, z.B. ob die Datei schreibgschützt ist, auch auf den Namen mit der Endung angewendet werden.

Christian Seehase 20. Mai 2005 23:02

Re: Savedialoge und Endungen
 
Moin Delphi Star,

dann müsstest Du die Überprüfung im OnCanClose-Ereignis durchführen.

Delphi Star 20. Mai 2005 23:08

Re: Savedialoge und Endungen
 
Das funktioniert auch nicht, das "OnCanClose"-Ereignis wird ausgeführt, nachdem die Überprüfungen gemacht worden sind. Anscheinend ist die einzige Möglichkeit alle Prüfungen, z.B. ob die Datei existiert, manuell im "OnCanClose"-Ereignis durchzuführen. Das ist mir aber zu umständlich, da muss es doch einen einfacheren Weg geben.

sECuRE 21. Mai 2005 08:07

Re: Savedialoge und Endungen
 
Hi,

ist dafür nicht die Eigenschaft "DefaultExt" gut?

cu

Sharky 21. Mai 2005 08:23

Re: Savedialoge und Endungen
 
Zitat:

Zitat von Delphi Star
Das funktioniert auch nicht, das "OnCanClose"-Ereignis wird ausgeführt,....

Hai Delphi Star,

wenn ich dich richtig verstehe möchtest Du nicht nach dem SaveDialog die Endung wissen sondern bevor er geschlossen wird?

Im OnCanClose wird zwar die Endung der Filter noch nicht an den Dateinamen gehängt aber der Delphi-Referenz durchsuchen.FilterIndex hat den Wert des ausgewählten Filters.

Garfield 21. Mai 2005 12:14

Re: Savedialoge und Endungen
 
Zitat:

Zitat von Gentleman
Delphi-Quellcode:
if pos('.txt', SaveDialog1.FileName)> Length(SaveDialog1.FileName) - 4

Das funktioniert nur, wenn die Dateierweiterung '.txt' ist. Ist nur ein Buchstabe groß geschrieben, ist das Ergebnis FALSE. Ich würde
Delphi-Quellcode:
if lowercase(ExtractFileExt (SaveDialog1.FileName)) = '.txt'
nehmen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:31 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