![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Практикуюсь в создании компонента на основе TGraphicControl.
Подскажите где почитать или посмотреть пример компонента с возможностью добавления вложенных элементов (например как это сделано в TabControl или StatusBar). А так же у меня не получается создать в инспекторе объектов группу свойств второго порядка. Применяя стандартный тип, он будет отображаться в виде ветки дерева свойств, если применяю свой, то он будто не инициализирован - в инспекторе объектов появляется, но не может раскрыться. Вот поясняющая часть кода : Код:
type TPivotPoint = (TopLeft,TopRight,BottomLeft,BottomRight); type TEdgeParams = class (TPersistent) private FShowFrame:boolean; FWidth:byte; FColor: TColor; published property ShowFrame:boolean read FShowFrame write FShowFrame default false; property Color:TColor read FColor write FColor; property Width:byte read FWidth write FWidth; end; type TChartName = class(TPersistent) private FChartText:string; FFontSize:integer; FFontStyle:TFontStyles; //Этот работает FEdgeParams:TEdgeParams; // Этот не раскрывается в инспекторе объектов protected published property ChartText:string read FChartText write FChartText; property FontSize:integer read FFontSize write FFontSize; property FontStyle:TFontStyles read FFontStyle write FFontStyle; property EdgeParams:TEdgeParams read FEdgeParams write FEdgeParams; end; {========================================================================} type TGraphPanel = class(TGraphicControl) private //... FPivotPoint : TPivotPoint; FChartName : TChartName; protected procedure SetPivot(NewPivot: TPivotPoint); procedure DrawEdge; procedure DrawChartName; public FWorkFrame:TAxis; published constructor Create(AOwner: TComponent); override; //... property PivotPoint : TPivotPoint read FPivotPoint write SetPivot default BottomLeft; property ChartName : TChartName read FChartName write FChartName;// default BottomLeft; property OnResize; end; procedure Register; implementation uses DateUtils; procedure Register; begin RegisterComponents('Monitor', [TGraphPanel]); end; constructor TGraphPanel.Create(AOwner: TComponent); begin inherited Create(AOwner); FChartName:=TChartName.Create; FEdge:=TEdgeParams.Create; //... with FWorkFrame do begin x0:=0; y0:=0; x1:=Width; y1:=Height; end; Height := 100; Width := 100; FChartName.FFontSize:=8; FChartName.FFontName:='System'; end; ЗЫ. Пробую сейчас разобраться в содержимом ComCtrl, наверное TCollectionItem и есть ответ на мой вопрос. В любом случае ваши прямые ответы будут мне полезными, указывая на важные моменты. Последний раз редактировалось Motorolla, 24.06.2019 в 02:41. |