1

TEdit コントロールのコンテンツをファイルに保存するための小さなプログラムを作成しています。

アイデアは、ユーザーが TEdit コントロールに何かを書き込んでからボタンを押してディスクにファイルを書き込むというものですが、コンパイルしようとすると「unit1.pas(37,15) Error: Wrong number of parameters specified for call to "Close"」が発生しました"

私のフォームには、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.

一体私は何を間違っているのですか?

4

1 に答える 1

4

少しグーグルでこれを見つけました

Close は、システム ユニット (暗黙的に使用される) と TCustomForm (TForm 祖先) クラスの両方に存在します。Pascal 識別子のスコープ規則により、修飾されていない Close が最も内側のスコープを取るようになります。したがって、TForm メソッドでこれを呼び出すと、TForm の Close が呼び出されます。これを回避するには、修飾呼び出し (System.Close を System ユニットから呼び出すか、Self.Close を使用して現在のフォームに属するものを呼び出す) または ObjPas ユニットから CloseFile (実際には System.Close を呼び出すだけ) を使用します (自動的に使用されます)。 {$mode objfpc} または {$mode delphi})。

于 2012-07-06T19:02:07.703 に答える