Чтение онлайн

на главную

Жанры

Delphi. Учимся на примерах

Парижский Сергей Михайлович

Шрифт:

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.

Поделиться:
Популярные книги

Энфис 6

Кронос Александр
6. Эрра
Фантастика:
героическая фантастика
рпг
аниме
5.00
рейтинг книги
Энфис 6

Сердце Дракона. Предпоследний том. Часть 1

Клеванский Кирилл Сергеевич
Сердце дракона
Фантастика:
фэнтези
5.00
рейтинг книги
Сердце Дракона. Предпоследний том. Часть 1

Идеальный мир для Лекаря 8

Сапфир Олег
8. Лекарь
Фантастика:
юмористическое фэнтези
аниме
7.00
рейтинг книги
Идеальный мир для Лекаря 8

Под маской, или Страшилка в академии магии

Цвик Катерина Александровна
Фантастика:
юмористическая фантастика
7.78
рейтинг книги
Под маской, или Страшилка в академии магии

Мой любимый (не) медведь

Юнина Наталья
Любовные романы:
современные любовные романы
7.90
рейтинг книги
Мой любимый (не) медведь

Академия

Кондакова Анна
2. Клан Волка
Фантастика:
боевая фантастика
5.40
рейтинг книги
Академия

Играть, чтобы жить. Книга 3. Долг

Рус Дмитрий
3. Играть, чтобы жить
Фантастика:
фэнтези
киберпанк
рпг
9.36
рейтинг книги
Играть, чтобы жить. Книга 3. Долг

Виконт. Книга 4. Колонист

Юллем Евгений
Псевдоним `Испанец`
Фантастика:
фэнтези
попаданцы
аниме
7.50
рейтинг книги
Виконт. Книга 4. Колонист

Вечный Данж. Трилогия

Матисов Павел
Фантастика:
фэнтези
юмористическая фантастика
6.77
рейтинг книги
Вечный Данж. Трилогия

Мужчина не моей мечты

Ардова Алиса
1. Мужчина не моей мечты
Любовные романы:
любовно-фантастические романы
8.30
рейтинг книги
Мужчина не моей мечты

Последний Паладин. Том 7

Саваровский Роман
7. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 7

Истинная со скидкой для дракона

Жарова Анита
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Истинная со скидкой для дракона

Волк 7: Лихие 90-е

Киров Никита
7. Волков
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Волк 7: Лихие 90-е

Кровь Василиска

Тайниковский
1. Кровь Василиска
Фантастика:
фэнтези
попаданцы
аниме
4.25
рейтинг книги
Кровь Василиска