Delphi. Учимся на примерах - [24]
Процедура verno:
>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;
Здесь мы сравниваем правильный ответ с вариантом, который дал пользователь, и в случае правильного ответа пополняем счетчик правильных ответов.
Процедура vars:
>procedure TForm1.vars(var variant: integer);
>begin
> //вызываем процедуру выбора случайного вопроса question_select();
> case variant of
> 1:
> begin
> Win:= TIniFile.Create(dir2); //открываем ini-файл
> //считываем вопрос
> Memo1.Text:= Win.ReadString('Q', IntToStr(a), Memo1.Text);
> //считываем правильный вариант ответа
> an1.Caption:= Win.ReadString('A', IntToStr(a), an1.Caption);
> //считываем три неверных варианта к данному вопросу
> an2.Caption:= Win.ReadString('W1', IntToStr(a), an2.Caption);
> an3.Caption:= Win.ReadString('W2', IntToStr(a), an3.Caption);
> 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 для пункта меню Игра→Выход:
>procedure TForm1.N4Click(Sender: TObject);
>begin
> Halt; //выход из программы
>end;
Теперь обработаем щелчок мышью на панели p1:
>procedure TForm1.p1Click(Sender: TObject);
>begin
> Label1.Caption:= 'Второй вопрос:';
> verno(); //принимаем вариант ответа
> p1.Visible:= False; //убираем первую панель
> р2.Visible:=True; //активизируем вторую панель
> vopr:= Random(4) +1; //выбираем случайный вариант ответа
> vars(vopr); //задаем вопрос
>end;
Здесь мы вначале изменяем заголовок на "Второй вопрос:", после чего принимаем вариант ответа, выбранный пользователем, вызывая процедуру verno.
Затем готовим форму ко второму вопросу: прячем первую панель и выводим вторую. Вызываем процедуру vars, которая выбирает вопрос и отображает его вместе с вариантами ответа.
Обработаем щелчок мышью на второй панели:
>procedure TForm1.p2Click(Sender: TObject);
>begin
> Label1.Caption:= 'Третий вопрос:';
> verno();
> p2.Visible:= False;
> p3.Visible:= True;
> vopr:= Random(4) + 1;
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Сейчас во многих школах, институтах и других учебных заведениях можно встретить компьютеры старого парка, уже отслужившие свое как морально, так и физически. На таких компьютерах можно изучать разве что Dos, что далеко от реалий сегодняшнего дня. К тому же у большинства, как правило, жесткий диск уже в нерабочем состоянии. Но и выбросить жалко, а новых никто не дает. Различные спонсоры, меценаты, бывает, подарят компьютер (один) и радуются, как дети. Спасибо, конечно, большое, но проблемы, как вы понимаете, этот компьютер в общем не решает, даже наоборот, усугубляет, работать на старых уже как-то не хочется, теперь просто есть с чем сравнивать.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.