Неверное количество параметров при использовании close

Я пишу небольшую программу для сохранения в файле содержимого элемента управления 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.

Что, черт возьми, я делаю неправильно???


person Ashir    schedule 06.07.2012    source источник
comment
вместо этого вы должны использовать CloseFile   -  person RRUZ    schedule 06.07.2012
comment
@RRUZ: Спасибо, все отлично работает.   -  person Ashir    schedule 07.07.2012


Ответы (1)


Немного погуглив я нашел это

Close существует как в системном модуле (неявно используемом), так и в классе TCustomForm (предок TForm). Правила области действия идентификатора Pascal заставляют неквалифицированный Close брать самую внутреннюю область. Следовательно, если вы вызываете его в методе TForm, то вызывается метод Close TForm. Чтобы избежать этого, используйте квалифицированный вызов (System.Close для вызова из модуля System или Self.Close для вызова того, который принадлежит текущей форме) или CloseFile (который на самом деле просто вызывает System.Close) из модуля ObjPas (автоматически используется в {$mode objfpc} или {$mode delphi}).

person Musa    schedule 06.07.2012