我正在编写一个小程序,以便在文件中保存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.
我到底做错了什么???
答案 0 :(得分:4)
通过一点谷歌搜索我发现了这个
在系统单元(隐式使用)和TCustomForm(TForm祖先)类中都存在关闭。 Pascal标识符作用域规则使得不合格的Close占据最内层的范围。因此,如果你在TForm方法中调用它,那么它就是被调用的TForm的Close。要避免这种情况,请使用限定调用(System.Close从系统单元调用一个或Self.Close调用属于当前表单的调用)或从ObjPas单元调用CloseFile(实际上只调用System.Close)(自动用于{$ mode objfpc}或{$ mode delphi})。