Читаем Delphi. Учимся на примерах полностью

   an4.Caption:= Win.ReadString('W3', IntToStr(a), an4.Caption);

   Win.Free; //освобождаем ini-файл

   //помечаем первый вариант как правильный

   yes:= an1.Caption;

  end;

 2:

  begin

   Win:= TIniFile.Create(dir2);

   Memo1.Text:= Win.ReadString('Q', IntToStr(a), Memo1.Text);

   an2.Caption:= Win.Readstring('A', IntToStr(a), an2.Caption);

   an1.Caption:= Win.Readstring('W1', IntToStr(a), an1.Caption);

   an3.Caption:= Win.ReadString('W2', IntToStr(a), an3.Caption);

   an4.Caption:= Win.ReadString('W3', IntToStr(a), an4.Caption);

   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.FormCreate(Sender: TObject);

begin

 Randomize;

 //получаем каталог, в котором находится наша программа

 dir:= GetCurrentDir;

 ss:= dir + '\comp.ini'; //путь к базе вопросов

 zz:= ss;

 start; //начинаем тест

end;

Теперь создадим обработчик события главной формы OnDestroy (возникает при выходе из программы):

procedure TForm1.FormDestroy(Sender: TObject);

begin

 DeleteFile('c:\base.bsd'); //удаляем расшифрованную базу

end;

Теперь обрабатываем команды меню. Обработчик события OnClick для пункта Игра→Заново:

procedure TForm1.N1Click(Sender: TObject);

begin

 Randomize;

 ss:= zz;

 start; //начало теста

end;

Поскольку у нас весь основной код вынесен в процедуры, теперь достаточно только вызвать процедуру начала игры.

Обработчик события OnClick для пункта меню Игра→Загрузить базу:

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;

Здесь мы предлагаем пользователю выбрать через диалоговое окно обзора ini– или любой другой файл, в котором содержатся зашифрованные вопросы и варианты ответов. Когда пользователь выбрал файл, мы запускаем процедуру start и, тем самым, начинаем тест.

Обработчик события OnClick для пункта меню Игра→Выход:

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже