使用close时参数数量错误

时间:2012-07-06 18:53:54

标签: file freepascal lazarus

我正在编写一个小程序,以便在文件中保存TEdit控件的内容。

想法是用户在TEdit控件中写入内容然后按下按钮在磁盘上写入文件,但是当尝试编译时我得到了" unit1.pas(37,15)错误:指定了错误的参数数量致电"关闭" "

我的表单只有TEdit控件和TButton。

var
  Form1: TForm1;
  f: text;

procedure TForm1.Button1Click(Sender: TObject);
begin
     writeln (f,Edit1.Text);
     close (f);
end;

Begin
     assign (f,'code.txt');
     rewrite (f);
end.

我到底做错了什么???

1 个答案:

答案 0 :(得分:4)

通过一点谷歌搜索我发现了这个

  

在系统单元(隐式使用)和TCustomForm(TForm祖先)类中都存在关闭。 Pascal标识符作用域规则使得不合格的Close占据最内层的范围。因此,如果你在TForm方法中调用它,那么它就是被调用的TForm的Close。要避免这种情况,请使用限定调用(System.Close从系统单元调用一个或Self.Close调用属于当前表单的调用)或从ObjPas单元调用CloseFile(实际上只调用System.Close)(自动用于{$ mode objfpc}或{$ mode delphi})。