Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.26;
Скачать: CL | DM;

Вниз

Вопрос по созданию компонент   Найти похожие ветки 

 
STANT ©   (2003-05-13 19:13) [0]

В компоненте, наследуемом от TGraphicControl перекрываю свойства в секции published и создаю новые. В конструкторе присваиваю значение переменным, которые читаются этими свойствами (напр., FAlign). В режиме дизайна изменяю одно из свойств нового компонента в инспекторе объектов, запускаю и в run-time наблюдаю "сброс" значений. Почему?
Например:
в конструкторе пишу "Align := alClient", устанавливаю компонент. Кладу на форму, изменяю Align на alNone в инспекторе, меняю размеры компонента. Запускаю и вижу что Align опять равен alClient.


 
Malder ©   (2003-05-13 19:24) [1]

Перекрываешь свойства ? Код в студию. А также код конструктора


 
Stant ©   (2003-05-13 19:33) [2]

>Malder
Вообще то я на билдере пишу, но в принципе все одно и то же.
Вот секция published:
__published:
__property Align;
__property Anchors;
__property TColor BGColor = {read=FBGColor, write=SetBGColor};
__property TBorderButtons BorderButtons = {read=FBorderButtons, write=SetBorderButtons};
__property Caption;
__property Color;
__property Font;
__property int HeadHeight = {read=FHeadHeight, write=SetHeadHeight};
__property ShowHint;
__property int TabX = {read=FTabX, write=SetTabX};
__property int TabY = {read=FTabY, write=SetTabY};

__property OnMouseDown;
__property OnMouseMove;
__property OnMouseUp;


Вот конструктор:
__fastcall TXScin::TXScin(TComponent* Owner)
: TGraphicControl(Owner)
{
xbClose = NULL;
xbMaximize = NULL;
xbMinimize = NULL;
FTabX = 4;
FTabY = 4;
FHeadHeight = 20;
FBGColor = clWhite;
ControlStyle = ControlStyle >> csOpaque;
ParentColor = false;
Align = alClient;
Color = clBlack;
Font->Style = TFontStyles() << fsBold;
}




 
Stant ©   (2003-05-13 19:41) [3]

Кстати, со свойством HeadHeight все то же самое. У меня закрадываются подозрения о том, что я чего-то не знаю о параметре default в описании свойства. Когда я пишу значение по умолчанию, нпример:
property Position: Integer read FPosition write SetPosition default 20; (это пример из стандартной библиотеки),
то в инспекторе объектов это свойство все равно имеет значение 0;


 
vuk ©   (2003-05-13 20:12) [4]

default заставляет компилятор прописывать в RTTI некоторое значение, с которым при записи в файл формы сравнивается текущее значение свойства, и если оно равно этому default-значению, в файл формы свойство записано не будет. На начальные значения свойств директива default значения не оказывает.


 
vuk ©   (2003-05-13 20:13) [5]

Будьте прокляты очепятки, и нелинейный монтаж текста! :o)

>директива default значения не оказывает.
директива default влияния не оказывает.


 
Stant ©   (2003-05-13 20:31) [6]

>vuk
Спасибо. Теперь понял.


 
Malder ©   (2003-05-14 00:00) [7]

Ты проблемы решил ?! Ну тогда ладно...



Страницы: 1 вся ветка

Текущий архив: 2003.05.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
7-83762
Кот Джин
2003-03-28 14:48
2003.05.26
Как узнать версию Windows?


14-83659
Ihor Osov'yak
2003-05-05 01:06
2003.05.26
Ты или Вы


3-83416
Hmuriy
2003-05-06 22:25
2003.05.26
символьное поле


6-83620
трям
2003-03-26 01:12
2003.05.26
Как узнать в Вин IP адрес?


14-83671
Ivan61
2003-05-04 11:44
2003.05.26
Как установить RXLib для D7?????