There is a simple question already about the idea of the TSaveDialog and [ofOverwritePromt] at Delphi overwrite existing file on save dialog.
So my issue/scenario is following:
- I have a 
TSaveDialog - I set the 
[ofOverwritePromt]inOptions - I set the filter to "PDF (*.pdf)|*.pdf"
 - Filter index is set to 1
 
So now I execute the program and call the dialog. If the file I select WITH MOUSE or KEYBOARD (without typing) exists then save dialog asks me to overwrite with the message:
But if I do the same actions but type the filename like 'Test' without specifying the extension the save dialog does not confirm overwrite. I know that actually it returns another filename "C:\Users\xxx\Desktop\Test" instead of "C:\Users\xxx\Desktop\Test.pdf". It is kind of not nice if the dialog asks you to save the file, but you need to type the extension.. So usually I handle it like this:
repeat
  { Ask for the file if not silent }
  if not dlgSave.Execute then
    Exit;
  { Read the filename from the save dialog }
  LTempFile := dlgSave.FileName;
  if not SameText(ExtractFileExt(LTempFile), '.pdf') then
    begin
      { Add the extension }
      LTempFile := LTempFile + '.pdf';
      { As we bypassed the overwrite check in dialog do it now }
      if FileExists(LTempFile) then
        if MsgWarn(Format('%s already exists. Replace?', [ExtractFileName(LTempFile)]), mbOKCancel) <> mrOk then
          Continue;
    end;
  Break;
until False;
Is there a way to do that more elegant without customizing the standard dialog?
