Wenn du als Filter immer nur eine Datei-Endung angegeben hast, dann funktioniert folgendes:
Delphi-Quellcode:
function GetExtension(const Filter: string; const Index: Integer): string;
var
List: TStrings;
begin
Result := '';
List := TStringList.Create;
try
List.Delimiter := '|';
List.DelimitedText := Filter;
Result := ExtractFileExt(List[Pred(Index*2)]);
finally
FreeAndNil(List);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if SaveDialog1.Execute then
ShowMessage(ChangeFileExt(SaveDialog1.FileName,
GetExtension(SaveDialog1.Filter, SaveDialog1.FilterIndex)));
end;