TSaveDialog-Dateierweiterung und Problem [ofOverwritePromt]

8

Es gibt bereits eine einfache Frage zur Idee des TSaveDialogs und [ofOverwritePromt] unter Delphi überschreibt vorhandene Datei beim Speichern Dialog .

Also mein Problem / Szenario folgt:

  • Ich habe ein TSaveDialog
  • Ich habe [ofOverwritePromt] in Options festgelegt
  • Ich habe den Filter auf "PDF (* .pdf) | * .pdf"
  • gesetzt
  • Der Filterindex ist auf 1 gesetzt

So jetzt führe ich das Programm aus und rufe den Dialog auf. Wenn die Datei, die ich MIT MAUS oder KEYBOARD wähle (ohne zu tippen) existiert, dann fordert mich der Dialog zum Speichern auf mit der Nachricht:

Aber wenn ich die gleichen Aktionen mache, aber den Dateinamen wie "Test" ohne Angabe der Erweiterung eintippe, wird der Speicherdialog nicht überschrieben. Ich weiß, dass es tatsächlich einen anderen Dateinamen "C: \ Users \ xxx \ Desktop \ Test" anstelle von "C: \ Users \ xxx \ Desktop \ Test.pdf" zurückgibt. Es ist irgendwie nicht nett, wenn der Dialog Sie bittet, die Datei zu speichern, aber Sie müssen die Erweiterung eingeben. Also gehe ich normalerweise so damit um:

%Vor%

Gibt es eine Möglichkeit, das elegante ohne Anpassung des Standarddialogs zu tun?

    
Z.B. 18.08.2016, 11:08
quelle

1 Antwort

13

Ich nehme an, dass Sie DefaultExt nicht setzen, weshalb Sie eine leere Erweiterung erhalten. Verwenden Sie diese Eigenschaft, und Sie werden das Problem nicht erhalten. Wenn Sie mehrere Filter verwenden, verwenden Sie das Ereignis OnFilterChange . Hier ist eine Möglichkeit, es zu tun:

%Vor%

Es bedeutet auch, dass Sie nicht nach der Erweiterung suchen und diese ändern müssen!

    
Dsm 18.08.2016, 11:22
quelle

Tags und Links