русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Члены данных, свойства и методы.


Дата добавления: 2015-06-12; просмотров: 590; Нарушение авторских прав


Прежде всего в файле MyComp.h опишем булеву переменную состояния индикатора и две переменные перечисляемого типа TColor для хранения цветов, отображающих оба состояния. Члены данных следует поместить в разделеprivate объявлений класса. Там же расположим прототипы методов записи соответствующих свойств, а сами свойства объявим в разделе _published.


Рис. 26. Окно Мастера компонентов

 

Ниже приводится заголовочный файл модуля компонента:

// MyComp.h ------------------------------------------------------------

#ifndef MyCompH

#define MyCompH

#include <SysUtils.hpp>

#include <Classes.hpp>

#include <Controls.hpp>

#include <ExtCtrls.hpp>

//---------------------------------------------------------------------------



class PACKAGE MyComp : public TShape

{

private:

bool FOnOff;

TColor FOnColor;

TColor FOffColor;

void __fastcall SetOnOff(const bool Value);

void __fastcall SetOnColor(const TColor OnColor);

void __fastcall SetOffColor (const TColor OffColor);

protected:

public:

__fastcall MyComp(TComponent* Owner);

__published:

__property bool OnOff= { read= FOnOff,write= SetOnOff};

__property ТСоlог OnColor= { read=FOnColor,write=SetOnColor};

__property TColor OffColor={ read=FOff Color, write= SetOffColor};

};

//---------------------------------------------------------------------------



#endif

Для добавления в файл MyComp.cpp необходимо написать три функции для присваивания значений свойств соответствующим членам данных и наполнить конструктор компонента инструкциями для инициализации переменных. Ниже приводится листинг файла MyComp.cpp после внесения изменений:

//MyComp.cpp

#include <vcl.h>

#pragma hdrstop

#include "MyComp.h"

#pragma package(smart_init)

//---------------------------------------------------------------------------



// ValidCtrCheck is used to assure that the components created

// do not have any pure virtual functions.

static inline void ValidCtrCheck(MyComp *)

{ new MyComp(NULL); }

void __fastcall MyComp::SetOnOff(const bool Value) {

FOnOff = Value;

Brush->Color= (FOnOff) ? FOnColor : FOffColor;

}

void __fastcall MyComp::SetOnColor(const TColor OnColor) {

FOnColor = OnColor;

Brush->Color = (FOnOff) ? FOnColor : FOffColor;

}

void __fastcall MyComp::SetOffColor(const TColor OffColor) {

FOffColor = OffColor;

Brush->Color = (FOnOff) ? FOnColor : FOffColor;

}

//---------------------------------------------------------------------------



__fastcall MyComp::MyComp(TComponent* Owner)

: TShape(Owner)

{ Width = 15; //ширина по умолчанию

Height = 15; // высота по умолчанию

FOnColor = clLime; // зеленый, когда включен

FOffColor = clRed; // красный, когда выключен

FOnOff = false; // выключен по умолчанию

Shape = stEllipse; //в форме эллипса по умолчанию

Pen->Color = clBlack; // черный контур по умолчанию

Pen->Width = 2; // ширина контура по умолчанию

Brush->Color = FOffColor; // цвет заливки по умолчанию

}

namespace Mycomp

{

void __fastcall PACKAGE Register()

{

TComponentClass classes[1] = {__classid(MyComp)};

RegisterComponents("Samples", classes, 0);

}

}

//---------------------------------------------------------------------------



Установленные конструктором значения членов данных по умолчанию появятся в окне Инспектора объектов при создании объекта. Действительно, при помещении компонента на форму конструктор вызывается автоматически. В результате появляется возможность менять значения свойств компонента не только во время выполнения программы, но и на стадии проектирования приложения.



<== предыдущая лекция | следующая лекция ==>
Создание собственных компонентов | Испытание компонента.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.227 сек.