548 Часть IV. Новые возможности C++

Упомянутый выше класс TGauge произошел от другого класса TControl. Класс TControl служит базовым для всех элементов управления в OWL, включая текстовые поля (text fields), кнопки, флажки, ползунковые регуляторы, полосы прокрутки (scroll bars) и т. д. Элементы управления добавляются к окнам диалога для того, чтобы конечный пользователь мог общаться с программой. Если нам нужно создать новый элемент управления, необходимо унаследовать класс от TControl и реализовать все необходимые элементы данных и функции-члены, которые составляют этот элемент управления. Для тех, кто не имеет опыта работы с OWL, это означало бы провести тщательное исследование и приложить значительные усилия. К счастью, мы не в такой ситуации — будучи хорошо осведомленными о преимуществах наследования в C++, мы унаследуем от TGauge новый класс по имени TChordGauge, и таким образом получим всю структуру и поведение индикаторов, рассмотренных в этом разделе.

На листинге 20.2 вы видите несколько сокращенную версию определения класса TGauge (полную версию вы можете найти в файле \Bc5\Include\Owl\ gauge, h).

h05481.jpg

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);