Выбрать главу

 {$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;