Hallo #,
folgender Code wird dem OnTypeChanged eines TSaveDialog zugewiesen,
Delphi-Quellcode:
{ filter type changed }
procedure TForm1.DoCommonExportToXLS_TypeChange(Sender: TObject);
var
sFileName : String;
sFileExt : String;
begin
try
Assert(ExcelFileDialog<>NIL, 'ExcelFileDialog=NIL');
if ExcelFileDialog=NIL then Exit;
// xlsx
if ExcelFileDialog.FilterIndex=2 then
begin
sFileName := ExcelFileDialog.FileName;
sFileExt := ExtractFileExt(sFileName);
if sFileExt<>'.xlsx' then
begin
sFileName:= ChangeFileExt(sFileName, '.xlsx');
ExcelFileDialog.FileName:= sFileName; // klappt nicht
end;
end;
except
end;
end; { TForm1.DoCommonExportToXLS_TypeChange }
In der Hlfe steht es auch schön drin
Zitat:
Programmbedingte Änderungen von FileName haben keine Auswirkungen auf aktive Dialogfelder.
Wozu soll dann das OnTypeChanged überhaupt gut sein ?
Wie kann ich denn nun den Namen doch noch ändern,
ohne gleich gross mit Hooks (?) rumzubasteln
oder wie bei "CheckBox zu TSaveDialog" hinzufügen rumzufummeln.
Danke
Heiko