548 Часть IV. Новые возможности C++
Упомянутый выше класс TGauge произошел от другого класса TControl. Класс TControl служит базовым для всех элементов управления в OWL, включая текстовые поля (text fields), кнопки, флажки, ползунковые регуляторы, полосы прокрутки (scroll bars) и т. д. Элементы управления добавляются к окнам диалога для того, чтобы конечный пользователь мог общаться с программой. Если нам нужно создать новый элемент управления, необходимо унаследовать класс от TControl и реализовать все необходимые элементы данных и функции-члены, которые составляют этот элемент управления. Для тех, кто не имеет опыта работы с OWL, это означало бы провести тщательное исследование и приложить значительные усилия. К счастью, мы не в такой ситуации — будучи хорошо осведомленными о преимуществах наследования в C++, мы унаследуем от TGauge новый класс по имени TChordGauge, и таким образом получим всю структуру и поведение индикаторов, рассмотренных в этом разделе.
На листинге 20.2 вы видите несколько сокращенную версию определения класса TGauge (полную версию вы можете найти в файле \Bc5\Include\Owl\ gauge, h).
class _OWLCLASS TGauge : public TControl ( public:
TGauge(TWindow* parent, const char far* title, int id, int x, int y, int w, int h = 0, bool isHorizontal = true, int margin = 1, TModule* module = 0);
// Запрос и установка свойств индикатора
//
void GetRange(ints min, ints max) const;
int GetStepO const;
int GetValuel) const;
void SetRangefint min, int max);
void SetStep(int step);
void SetValue(int value);
void DeltaValue(int delta);
void Stepit() ;
void operator ++(int);
// Установка стиля, пропорций и цвета индикатора
//
void SetLed(int spacing, int thickPercent = 90);
void SetColor(const TColors color);
static void SetNativeUse(TNativeUse nu);