Вход/Регистрация
Delphi. Учимся на примерах
вернуться

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

Шрифт:

 //настройки для текущего пользователя

 reg.RootKey:= HKEY_CURRENT_USER;

 reg.OpenKey('SYSTEM\CurrentControlSet\Services\Cdrom', False); //открываем раздел

 if reg.ValueExists('Autorun') then //если ключ существует

if reg.readinteger('autorun') = 1 //и если он равен 1,

then //то устанавливаем флажок первой опции

CheckBox1.Checked:= True;

 reg.CloseKey;//закрываем реестр

 //Таким же образом проверяем остальные опции

 //Для опции "Отключить свойства экрана":

 reg:= TRegistry.Create;

 reg.RootKey:= HKEY_CURRENT_USER;

 reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\' +

'Policies\System', False);

 if reg.ValueExists('NoDispCPL') then

if reg.ReadInteger('NoDispCPL') = 1 then CheckBox2.Checked:= True;

 reg.CloseKey;

 //для опции "Заблокировать реестр":

 reg:= TRegistry.Create;

 reg.RootKey:= HKEY_CURRENT_USER;

 reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\' +

'Policies\System', False);

 if reg.ValueExists('DisableRegistryTools') then

if reg.ReadInteger('DisableRegistryTools') = 1 then CheckBox3.Checked:= True;

 reg.CloseKey;

end;

end.

⊚ Все файлы проекта и исполняемый файл рассмотренной программы находятся на прилагаемом к книге компакт-диске в папке Chapter_12.

Глава 13

Тест

Постановка задачи

Разработать программу для тестирования знаний в разных областях. Пользователь должен ответить на несколько вопросов, которые случайным образом выбираются из общей базы вопросов. После того как пользователь ответил на все вопросы, программа должна высчитать и выдать результат прохождения теста — процент правильных ответов. Также необходимо дать возможность пользователю подключать внешние файлы, содержащие вопросы и варианты ответов к ним. Для того чтобы пользователь не смог прочитать правильные ответы, следует зашифровать файл с вопросами и ответами.

Структура базы вопросов и ответов

Перед тем как разработать сам тест, разберем содержимое файла, в котором будут храниться вопросы и варианты ответов к ним. Это будет ini-файл следующей структуры:

[num]

num=количество вопросов в базе

[Q]

0=Первый вопрос

1=Второй вопрос

[А]

0=0твет к первому вопросу

1=0твет ко второму вопросу

[W1]

0=Неправильный вариант к первому вопросу

1= Неправильный вариант ко второму вопросу

[W2]

0=Неправильный вариант к первому вопросу

1= Неправильный вариант ко второму вопросу

[W3]

0=Неправильный вариант к первому вопросу

1=Неправильный вариант ко второму вопросу

В этом ini-файле шесть разделов: num, Q, A, W1, W2 и W3. Как вы понимаете, если кто-то заглянет в этот файл, то уже через несколько минут он будет знать правильные ответы на все вопросы. А если он этот файл подкорректирует, то и вовсе будет получать только правильные варианты ответов. Для того чтобы этого не случилось, мы будем шифровать нашу базу вопросов. Это можно сделать с помощью программы Блокнот-шифровальщик, рассмотренной в главе 7. Для шифрования выберем небольшое смещение, например, 101. После того как вы создали все вопросы и варианты ответов к ним, не забудьте указать количество вопросов в разделе num. После этого зашифруйте базу, используя смещение 101.

⊚ Пример зашифрованной базы вопросов/ответов можно найти на прилагаемом к книге компакт-диске в файле Chapter_13\comp.ini.

Разработка формы

Создайте новый проект Delphi. Присвойте свойству Caption формы значение Tester, а свойству BorderStyle — bsNone. У верхнего края формы разместите компонент Label категории Standard, присвоив его свойству Caption значение Первый вопрос:.

Ниже разместите компонент Memo категории Standard, с помощью которого мы будем отображать текущий вопрос. Присвойте свойству Memo1.Readonly значение True, чтобы пользователь не мог изменить текст вопроса.

  • Читать дальше
  • 1
  • ...
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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