SaveDialog1.FileName:= ChangeFileExt(SaveDialog1.FileName, Ext);
Das geht nur wenn der Dialog noch nicht offen ist, also vor dem "Execute"
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