Delphi. Учимся на примерах | страница 49



>

> 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 и, тем самым, начинаем тест.