Win.Free;
yes: = an2.Caption;
end;
3:
begin
Win:= TIniFile.Create(dir2);
Memo1.Text:= Win.ReadString('Q', IntToStr(a), Memo1.Text);
an3.Caption:= Win.ReadString('A', IntToStr(a), an3.Caption);
an2.Caption:= Win.ReadString('W1', IntToStr(a), an2.Caption);
an1.Caption:= Win.ReadString('W2', IntToStr(a), an1.Caption);
an4.Caption:= Win.ReadString('W3', IntToStr(a), an4.Caption);
Win.Free;
yes:= an3.Caption;
end;
4:
begin
Win:= TIniFile.Create(dir2);
Memo1.Text:= Win.ReadString('Q', IntToStr(a), Memo1.Text);
an4.Caption:= Win.ReadString('A', IntToStr(a), an4.Caption);
an2.Caption:= Win.ReadString('Wl', IntToStr(a), an2.Caption);
an3.Caption:= Win.ReadString('W2', IntToStr(a), an3.Caption);
an1.Caption:= Win.ReadString('W3', IntToStr(a), an1.Caption);
Win.Free;
yes:= an4.Caption;
end;
end;
end;
procedure TForm1.start();
begin
Randomize; //Включаем генератор случайных чисел
for i:=1 to n do mass[i] := 0; //n – количеству вопросов
{$I-} //отключаем контроль ошибок ввода/вывода.
//делаем все элементы видимыми для пользователя
Memo1.Visible:= True;
RadioGroup1.Visible:= True;
Label1.Visible:= True;
an1.Visible:= True;
an2.Visible:= True;
an3.Visible:= True;
an4.Visible:= True;
p1.Visible:= True;
p2.Visible:= False;
p3.Visible:= False;
p4.Visible:= False;
p5.Visible:= False;
balls:= 0;
Label2.Visible:= False; //прячем результаты
Label1.Caption:= 'Первый вопрос:';
dir2:= 'C:\base.bsd'; //путь к расшифрованной базе
//копируем зашифрованную базу на диск С:
CopyFile(PChar(ss), PChar(dir2), True);
//связываем переменную f1 с зашифрованным ini-файлом
AssignFile(f1, ss);
//связываем переменную f2 с файлом C:\base.bsd
AssignFile(f2, dir2);
Reset(f1); //открываем первый файл на чтение
Rewrite(f2); //второй – на запись
while not Eof(fl) do
begin //пока не достигнут конец первого файла
Read(f1, cop); //считываем один символ из файла
сор:= Chr(Ord(cop) xor 101); //расшифровываем символ
Write(f2, сор); //записываем расшифрованный символ в файл
end;
CloseFile(f1); //закрываем первый файл
CloseFile(f2); //закрываем второй файл
{$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;
Читать дальше