Иллюстрированный самоучитель по C++ Builder

Текст программы

После того как будет создана форма программы, можно приступить к кодированию (набору текста). Сначала надо внести дополнения в объявление формы (листинг 10.1) – объявить массив компонентов RadioButton, функцию обработки события click на кнопке выбора ответа и функции, обеспечивающие отображение и удаление вопроса.

Следует обратить внимание на то, что объявление массива компонентов RadioButton (указателей на компоненты) только устанавливает факт существования компонентов, сами же компоненты будут созданы в начале работы программы. Делает это конструктор формы. Он же задает функции обработки события click для компонентов массива. Другой важный момент, на который следует обратить внимание, это объявление функций swowVopros и EraseVopros как методов объекта Form1. Это сделано для того, чтобы обеспечить этим функциям прямой доступ к компонентам формы.

Текст модуля главной формы приведен в листинге 10.2.

Листинг 10.1. Программа тестирования (заголовочный файл).

#ifndef tester_H
#define tester_H
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCTRLs.hpp>
#include <Forms.hpp>
#include <ExtCTRLs.hpp>
#include <Dialogs.hpp>
#include <Graphics.hpp>
// вопрос struct TVopros {
AnsiString Vopr; // вопрос
AnsiString Img; // иллюстрация (имя BMP-файла)
AnsiString Otv[4]; // варианты ответа
int nOtv; // кол-во вариантов ответа
int rOtv; // номер правильного ответа };
// форма
class TForml: public TForm { published:
 // IDE-managed Components
TLabel *Labell; // информационное сообщение, вопрос
Tlmage *Imagel; // иллюстрация к вопросу
TButton *Buttonl; // кнопка OK / Дальше
void__fastcall FormActivate(TObject *Sender);
void __fastcall ButtonlClick(TObject *Sender);
private:
TRadioButton *RadioButton[4];
 // варианты ответа – кнопки выбора
void __fastcall RadioButtonClick(TObject *Sender);
 // щелчок на
// кнопке выбора ответа
void __fastcall ShowVopros(TVopros v);
 // выводит вопрос
void __fastcall EraseVopros(void);
 // удаляет вопрос
public:
__fastcall TForml (TCornponent* Owner);
};
extern PACKAGE TForml *Forml;
 #endif
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.