Delphi. Учимся на примерах | страница 46
Таблица 13.1. Свойства компонента Label, отображающего результат теста
Свойство | Значение | Пояснение |
---|---|---|
Alignment | taCenter | Выравнивание текста — по центру |
Color | clBlack | Цвет фона — черный |
Font.Color | clRed | Цвет текста — красный |
Font.Name | Arial | Название шрифта |
Font.Size | 26 | Размер шрифта |
Font.Style | [fsBold] | Начертание шрифта — полужирное |
Visible | False | При запуске программы метка невидима |
Осуществлять переход к следующему вопросу мы будем с помощью панелей. Разместите под вариантами ответов пять компонентов Panel категории Standard. Для каждой из них присвойте свойству Caption значение Следующий вопрос>>>>>, свойству Color — значение clMaroon, а свойству Font.Color — значение clWhite. Присвойте им имена (свойство Name) p1, р2, p3, р4 и р5. Для того чтобы убрать выпуклость и привести панель к виду стильной кнопки, изменим значение свойства BevelInner на bvRaised, а свойства BevelOuter — на bvLowered. Для всех панелей, кроме p1, присвойте свойству Visible значение False (изначально будет видна только первая панель).
Поскольку в программе будет предусмотрена возможность динамической загрузки базы вопросов/ответов, нам понадобится диалоговое окно открытия файла. Для этого разместим на форме компонент OpenDialog категории Dialogs и присвоим ему имя Open1 (свойство Name). Кроме того, определите в свойстве Filter следующий фильтр: ini-файлы|*.ini|Все файлы|*.*.
Теперь разработаем меню программы. Для этого разместите на форме компонент MainMenu категории Standard и создайте меню в соответствии с рис. 13.1.
⇖ Разработка меню рассматривается в главе 6, "Программа просмотра рисунков".
Рис. 13.1. Меню для программы-теста
Полученная форма должна примерно соответствовать рис. 13.2.
Рис. 13.2. Форма программы-теста
Разработка программного кода
Для начала, объявим все глобальные переменные:
>var
> Form1: TForm1;
> i, a, n, balls, vopr: integer; {различные счетчики и переменные для подсчета баллов}
> dir, dir2, ss, zz, yes: string; {путь к файлу с вопросами, к программе и расшифрованной базе}
> win: TIniFile; //переменная для работы с ini-файлами
> mass: array[1..100] of integer; {содержит номера уже заданных вопросы, чтобы они не повторялись}
> f1, f2: file of char; //переменные для работы с файлами
> сор: char; //для работы с каждым символом отдельно
Добавим в раздел uses ссылку на модуль IniFiles, который потребуется для работы с классом TIniFile. Мы также разработаем четыре собственные процедуры. Объявим их как закрытые члены класса формы: