end;
FOpen:=true; // включаем признак, что у нас файл был открыт
ReadLn(f,TestName); // читаем из файла название теста
Form1.Caption:='Психологический тест - '+TestName; // заголовок окна устанавливаем в название теста
ReadLn(f,QCount); // читаем количество вопросов теста
QCurrent:=0; // текущий вопрос - нулевой
QUser:=0; // сброс количества баллов за ответы
LoadQuestion; // переход к процедуре чтения вопроса
end else Application.Terminate; // если файл теста не выбран, то завершить работу программы
end;
Единственной непонятной строкой для компилятора будет строка LoadQuestion. Эту процедуру мы создадим самостоятельно. В редакторе кода в разделе public объявляем новую процедуру:
procedure LoadQuestion;
А после написанной нами процедуры реакции на появления окна, после строки окончания процедуры "end;", но до строки окончания модуля "end." создадим самостоятельно заголовок процедуры:
procedure TForm1.LoadQuestion;
begin
end;
Вы только что самостоятельно создали свою собственную процедуру, которую можно вызвать на выполнение из любого места программы (даже из другого модуля), в этой процедуре доступны все свойства и методы компонентов программы.
Пишем внутри этой процедуры обработку чтения одного вопроса из файла:
procedure TForm1.LoadQuestion;
Var Str_F: String; // временная строковая переменная для чтения данных из файла
begin
Inc(QCurrent); // увеличиваем порядковый номер текущего вопроса на 1 (равноценно команде QCurrent:=QCurrent+1)
// ЧИТАЕМ ВОПРОС
ReadLn(f,Str_F); // читаем вопрос из файла
Label1.Caption:=Str_F; // присваиваем компоненту текст вопроса
// ЧИТАЕМ ПЕРВЫЙ ОТВЕТ
ReadLn(f,Str_F); // читаем первый ответ из файла
Label2.Caption:=Str_F; // присваиваем компоненту текст ответа