Форум: "Основная";
Текущий архив: 2003.05.26;
Скачать: [xml.tar.bz2];
ВнизВопрос по созданию компонент Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c