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