with saveDialog1 do
  begin
     fileName:='1'+'.DAT';
     execute;
     if fileExists(fileName) then
      case Application.MessageBox('文件已经存在,覆盖吗?','文件已存在?',MB_YESNOCANCEL) of
       IDYES:
            begin
              deleteFile(fileName);
              showMessage('保存中..');
            end
       IDNO:  // 我想还是停留在SaveDialog那里--怎么写?
       IDCANCEL: //我想回到程序中,即关闭SaveDialog --怎么写?
     end;谢谢

解决方案 »

  1.   

    使用while true do再次打开SaveDialog,需要关闭的时候使用break
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      with saveDialog1 do
      begin
         fileName:='1'+'.DAT';
         while true do
         begin
           if not(Execute) then exit;
           if fileExists(fileName) then
             case Application.MessageBox('文件已经存在,覆盖吗?','文件已存在?',MB_YESNOCANCEL) of
               IDYES:
               begin
                 deleteFile(fileName);
                 showMessage('保存中..');
                 break;
               end;
               IDNO:  // 我想还是停留在SaveDialog那里--怎么写?
               begin
                 //
               end;
               IDCANCEL: //我想回到程序中,即关闭SaveDialog --怎么写?
               begin
                 break;
               end;
             end;
           end;
      end;
    end;
      

  2.   

    with SaveDialog1 do
      begin
        Options := [ofOverwritePrompt];
        FileName:='1'+'.DAT';
        if not Execute then Exit;
        DeleteFile(FileName);
        showMessage('保存中..');
      end;
      

  3.   

    不好意思,改一下:
      with SaveDialog1 do
      begin
        Options := [ofOverwritePrompt];
        FileName:='1'+'.DAT';
        if not Execute then Exit;
        if FileExists(FileName) then DeleteFile(FileName);
        showMessage('保存中..');
      end;
      

  4.   

    谢谢上面的,特别是  liyinwei(月夜彩虹)我要的就是这种效果,都不知道SaveDialog的Option设置 呵呵结帖了