Рекомендуемый вид формы приведен на рис. 1.51.

Рис. 1.51. Форма программы Чтение файла

implementation
{$R *.dfm}
// нажатие клавиши в поле редактирования
procedure TForml.EditlKeyPress(Sender: TObject; var Key: Char),
begin
if Key = #13 // клавиша
then Buttonl.SetFocus;
end;
// щелчок на кнопке Открыть
procedure TForml.ButtonlClick(Sender: TObject);
var
f: TextFile; // файл
fName: String[80]; // имя файла
buf: String[80]; // буфер для чтения строк
begin
fName := Edit1.Text;
AssignFile(f, fName);
try
Reset (f); // открыть для чтения
except
on EInOutError do
begin
ShowMessage('Ошибка доступа к файлу '+
fName);
exit;
end;
end;
// чтение из файла
while not EOF(f) do
begin
readln(f, buf); // прочитать строку из файла
Memol.Lines.Add(buf); // добавить строку в поле Memol
end;
CloseFile(f); // закрыть файл
end;
// щелчок на кнопке Сохранить
procedure TForml.Button2Click(Sender: TObject);
var
f: TextFile; // файл
fName: String[80]; // имя файла
i: integer;
begin
fName := Edit 1.Text;
A.ssignFile (f, fName);
try
Rewrite(f); // открыть для перезаписи
except
on EInOutError do
begin
ShowMessage('Ошибка доступа к файлу '+ fName);
exit;
end;
end;
// запись в файл
for i:=0 to Memol.Lines.Count do // строки в поле Memo
// пронумерованы с нуля
writeln(f, Memol.Lines[i]);
CloseFile(f); // закрыть файл
MessageDlg('Данные записаны в файл',
mtlnformation,[mbOk],0);
end;
// щелчок на переключателе Только чтение
procedure TForml.CheckBoxlClick(Sender: TObject);
begin
if not CheckBoxl.Checked then
begin
Memol.Readonly := False; // разрешить редактирование
Button2.Visible := True // кнопка Сохранить доступна
end
else
begin
Memol.Readonly := True; // запретить редактирование
Button2.Visible := False; // скрыть кнопку Сохранить
end;
end;end.