Publishing Inherited Properties (Graphic)
Go Up to Publishing the Pen and Brush
Once you derive a component type, you can decide which of the properties and events declared in the protected parts of the ancestor class you want to surface in the new component. TGraphicControl already publishes all the properties that enable the component to function as a control, so all you need to publish is the ability to respond to mouse events and handle drag-and-drop.
Publishing inherited properties and events is explained in [[Publishing Inherited Properties|Publishing inherited properties] and Making Events Visible]. Both processes involve redeclaring just the name of the properties in the published part of the class declaration.
For the shape control, you can publish the three mouse events, the three drag-and-drop events, and the two drag-and-drop properties:
type TSampleShape = class(TGraphicControl) published property DragCursor; { drag-and-drop properties } property DragMode; property OnDragDrop; { drag-and-drop events } property OnDragOver; property OnEndDrag; property OnMouseDown; { mouse events } property OnMouseMove; property OnMouseUp; end;
class PACKAGE TSampleShape : public TGraphicControl { private: __published: __property DragCursor ; __property DragMode ; __property OnDragDrop ; __property OnDragOver ; __property OnEndDrag ; __property OnMouseDown ; __property OnMouseMove ; __property OnMouseUp ; };
The sample shape control now makes mouse and drag-and-drop interactions available to its users.