var
  i:integer;
  FName:string;
  SaveDialog:TSaveDialog;
begin
  FileMemo.Lines.Clear;
  FileMemo.Lines.AddStrings(lbSend.Items);
  Filememo.Lines.Add('----');
  FileMemo.Lines.AddStrings(lbSendPhone.Items);
  for i:=0 to fileMemo.Lines.Count-1 do
    Filememo.Lines[i] := EnCodeStr(Filememo.Lines[i]);//编码
  SaveDialog:=TSaveDialog.Create(Application);
  try
    SaveDialog.Filter := '文件|*.walk';
    SaveDialog.FileName := 'List1.walk';
    if SaveDialog.Execute then
    begin
      FName :=SaveDialog.FileName;
      i:=pos('.',FName);
      Delete(FName,i,length(FName)-i);
      Filememo.Lines.savetofile(FName+'.Walk');
    end;
  finally
    SaveDialog.Destroy;
  end;

解决方案 »

  1.   

    >>>>>>>>
      finally
        SaveDialog.Destroy;將這行去掉, 不要你釋放, 畫蛇tian足!
      

  2.   

    SaveDialog:=TSaveDialog.Create(Application);    ??
    似乎无此必要吧?....你控件拖放在窗体上,要这玩意儿做咩?
      

  3.   

    同意 zijida(深水游鱼,吐泡泡被追殴)
      

  4.   

    仔細分析過, 根本不可通出現問題. 且用如下方法
    SaveDialog:=TSaveDialog.Create(nil);  <<=============FreeAndNil(SaveDialog);   <<============