![]() |
Dateiname beim geöffnetem TSaveDialog ändern
Wie kann man das Feld Dateiname beim geöffneten TSaveDialog ändern. Damit meine ich TSaveDialog bei/nach Execute. Änderungen an FileName bewirken nichts.
Entweder es gibt einen Schalter für Aktualisierungen den ich übersehen habe oder ich mache etwas falsch. Alternativ würde es mich interessieren wie man nach Dateityp Änderung dem Dateinamen eine neue Erweiterung geben kann. |
AW: Dateiname beim geöffnetem TSaveDialog ändern
vielleicht hilft
![]() |
AW: Dateiname beim geöffnetem TSaveDialog ändern
War genau das was ich gesucht habe. Danke.
Delphi-Quellcode:
Nur informationeller, falls es einer weiß - kann mir einer sagen wieso das hier nicht funktioniert?
procedure TFormX.SaveDialogTypeChange(Sender: TObject);
const WM_USER = $0400; CDM_FIRST = WM_USER + 100; CDM_SETCONTROLTEXT = CDM_FIRST + $0004; var FName, Ext: string; begin if Sender is TSaveDialog then with TSaveDialog(Sender) do begin if DirectoryExists(FileName) then Exit; case FilterIndex of 1: Ext := '.abc'; 2: Ext := '.def'; else Ext := ExtractFileExt(FileName); end; FName := ExtractFileName(ChangeFileExt(FileName, Ext)); SendMessage(Windows.GetParent(Handle), CDM_SETCONTROLTEXT, 1152, LongInt(PChar(FName))); end; end;
Delphi-Quellcode:
Hier ist keine Änderung an FileName möglich.
...
FileName:= ChangeFileExt(FileName, Ext); ... SendMessage...; end; end; |
AW: Dateiname beim geöffnetem TSaveDialog ändern
...
SaveDialog1.FileName:= ChangeFileExt(SaveDialog1.FileName, Ext); ... MfG, terence |
AW: Dateiname beim geöffnetem TSaveDialog ändern
Daran liegt es nicht, das ist schon mit
Delphi-Quellcode:
abgedeckt. Außerdem habe ich es auch schon so wie du es gemacht hast vorher getestet.
with TSaveDialog(Sender) do
|
AW: Dateiname beim geöffnetem TSaveDialog ändern
Delphi-Quellcode:
Das geht nur wenn der Dialog noch nicht offen ist, also vor dem "Execute"
SaveDialog1.FileName:= ChangeFileExt(SaveDialog1.FileName, Ext);
In dieser Zeile hält das Programm auch an! if SaveDlalog1.Execute // in dieser Zeile hält das Programm an und wartet auf eine Aktion des Nutzers then ShowMessage(SaveDialog.Filename) else Showmessage(Abbruch´'); // Auswertung Zum Ändern wenn der Dialog offen ist muss man halt wie es der Code, den du gepostet hast, zeigt mit dem OngTypeChange abfangen und dann üver das Handle das Textfeld ermitteln und ändern. Diese Events werden auch ausgelöst wenn der Code eigentlich angehalten ist, wie Auch TTimer.OnTimer Hoffe das erklärt es :) |
AW: Dateiname beim geöffnetem TSaveDialog ändern
Zitat:
|
AW: Dateiname beim geöffnetem TSaveDialog ändern
Danke. So grob habe ich mir das in die Richtung gedacht, war mir aber nicht sicher.
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:44 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