{$I+} //включаем контроль ошибок ввода/вывода
Win:= TIniFile.Create(dir2); //работаем с ini-файлом
//считываем количество вопросов в базе
ss:= Win.ReadString('num', 'num', ss);
//преобразовываем строку в число и записываем значение в n
n:= StrToInt(ss);
vopr:=Random(4) + 1;
//случайное число от 1 до 4
vars(vopr); {передаем число процедуре vars, которая сортирует варианты ответов}
end;
procedure TForm1.question_seleсt();
label ran; //метка ran для быстрого перехода
begin
Randomize;
ran:
a:=Random(n); //выбираем случайный вопрос из базы
//проверяем: не задавали ли мы этот вопрос ранее
for i:=1 to n do
if mass[i] = a then goto ran;
for i:=1 to n do
if mass[i] = 0 then begin
mass[i]:= а; {записываем номер вопроса, чтобы не задавать его больше }
Break;
end;
//сбрасываем флажки со всех вариантов ответов
an1.Checked:= False;
an2.Checked:= False;
an3.Checked:= False;
an4.Checked:= False;
end;
procedure TForm1.verno();
begin
if an1.Checked then
if yes = an1.Caption then balls:= balls + 1;
if an2.Checked then
if yes = an2.Caption then balls:= balls + 1;
if an3.Checked then
if yes = an3.Caption then balls:= balls + 1;
if an4.Checked then
if yes = an4.Caption then balls:= balls + 1;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
Randomize;
//начинаем обзор с текущего каталога
Open1.InitialDir:= GetCurrentDir;
if not Open1.Execute then ShowMessage('Вы не выбрали файл!')
else begin
ss:= Open1.FileName; //открываем выбранный файл
zz:= ss; //запоминаем путь к базе
start(); //начинаем тест
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize;
//получаем каталог, в котором находится наша программа
dir:= GetCurrentDir;
ss:= dir + '\comp.ini'; //путь к базе вопросов
zz:= ss;
start(); //начинаем тест
end;
procedure TForm1.p1Click(Sender: TObject);
begin
Label1.Caption:= 'Второй вопрос:';
verno(); //принимаем вариант ответа
p1.Visible:= False; //убираем первую панель
р2.Visible:=True; //активизируем вторую панель
vopr:= Random(4) +1; //выбираем случайный вариант ответа
vars(vopr); //задаем вопрос
end;
procedure TForm1.p2Click(Sender: TObject);
begin
Label1.Caption:= 'Третий вопрос:';
verno();
p2.Visible:= False;
p3.Visible:= True;
vopr:= Random(4) + 1;
vars(vopr);
end;
procedure TForm1.p3Click(Sender: TObject);
begin
Label1.Caption:= 'Четвертый вопрос:';
verno();
р3.Visible:= False;
p4.Visible:= True;
vopr:= Random(4) + 1;
vars(vopr);
end;
procedure TForm1.p4Click(Sender: TObject);
begin
Label1.Caption:= 'Пятый вопрос:';
verno();
p4.Visible:= False;
p5.Visible:= True;
vopr:= Random(4) + 1;
vars(vopr);
end;
procedure TForm1.p5Click(Sender: TObject);
begin
//проверяем правильность ответа на последний вопрос
verno() ;
//узнаем, сколько баллов набрал пользователь
ss:= IntToStr(balls);
//делаем почти все компоненты невидимыми
Memo1.Visible:= False;
р5.Visible:= False;
RadioGroup1.Visible:= False;
Label1.Visible:= False;
an1.Visible:= False;
an2.Visible:= False;
an3.Visible:= False;
an4.Visible:= False;
Label2.Visible:=True;//показываем метку с результатом
Label2.Align:= alClient;//растягиваем ее на всю форму
//Отображаем процент правильных ответов
Label2.Caption:= 'Правильных ответов' + IntToStr(balls*(100 div 5))+'%';
end;
procedure TForm1.N4Click(Sender: TObject);
begin
Halt; //выход из программы
end;
procedure TForm1.p1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
p1.BevelInner:= bvLowered;
p1.BevelOuter:= bvRaised;
end;
procedure TForm1.p1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
p1.BevelInner:=bvRaised;
p1.BevelOuter:=bvLowered;
end;
procedure TForm1.p2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
p2.BevelInner:= bvLowered;
p2.BevelOuter:= bvRaised;
end;
procedure TForm1.p2MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
p2.BevelInner:=bvRaised;
p2.BevelOuter:=bvLowered;
end;
procedure TForm1.p3MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
p3.BevelInner:= bvLowered;
p3.BevelOuter:= bvRaised;
end;
procedure TForm1.p3MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
p3.BevelInner:=bvRaised;
p3.BevelOuter:=bvLowered;