急急急急急啊
我是在做一个文本编辑器,为什么我的保存功能虽然能运行,但保存后的文件却是空的。而且当我保存一次后,想再次保存,就会出现EFCrateError错误。这是为什么,请各位在侠帮忙解决一下。我的“保存”和“另存为”的代码如下:
procedure TForm1.saveClick(Sender: TObject);
begin
  if memo1.Text<>'' then
     if currentfile='' then
       saveasclick(sender)
     else
     begin
       memo1.Lines.SaveToFile(currentfile);===============我错误觉得可能出现在这边
       modify:=false; //标记文件有没有被更改过,是一上PUBLIC变量
     end
  else
     application.MessageBox('您的文件中没有内容,保存没有意义!','提示')
end;procedure TForm1.saveasClick(Sender: TObject);
var
   fname:string;
   outfile:textfile;
begin
     if memo1.Text<>'' then
        if savedialog1.Execute then
           begin
             fname:=savedialog1.FileName;
             assignfile(outfile,fname);
             rewrite(outfile);
             writeln(outfile,memo1.text);
             currentfile:=fname;        //crrrentfile是记录保存后的文件的文件名,是一上PUBLIC变量
             modify:=false;
           end
        else
             exit
     else
         application.MessageBox('您的文件中没有内容,保存没有意义!','提示');
end;

解决方案 »

  1.   

    procedure TForm1.saveasClick(Sender: TObject);
    var
       fname:string;
       outfile:textfile;
    begin
         if memo1.Text<>'' then
            if savedialog1.Execute then
               begin
                 fname:=savedialog1.FileName;
                 assignfile(outfile,fname);
                 rewrite(outfile);
                 writeln(outfile,memo1.text);
                 CloseFile(outfile);///很重要
                 currentfile:=fname;        //crrrentfile是记录保存后的文件的文件名,是一上PUBLIC变量
                 modify:=false;
               end
            else
                 exit
         else
             application.MessageBox('您的文件中没有内容,保存没有意义!','提示');
    end;