Die Komponente erstellen und registrieren
Nach oben zu Grafische Komponenten erzeugen - Index
Alle Komponenten werden nach dem gleichen Muster erstellt: Sie erzeugen eine Unit, leiten eine Komponentenklasse ab, registrieren sie, compilieren die Unit und installieren die Komponente in der Tool-Palette. Dieser Vorgang wird unter Eine neue Komponente erzeugen beschrieben.
Für das vorliegende Beispiel führen Sie die allgemeine Prozedur zum Erstellen einer Komponente aus, wobei folgende Schwerpunkte gesetzt werden:
- Geben Sie der Komponenten-Unit den Namen Shapes
- Leiten Sie von TGraphicControl den neuen Komponententyp TSampleShape ab.
- Registrieren Sie TSampleCalendar in der Kategorie Beispiele der Tool-Palette.
Die daraus resultierende Unit sollte wie folgt aussehen:
unit Shapes; interface uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms; type TSampleShape = class(TGraphicControl) end; procedure Register; implementation procedure Register; begin RegisterComponent('Samples', [TSampleShape]); end; end.
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Shapes.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(TSampleShape *) { new TSampleShape(NULL); } //--------------------------------------------------------------------------- __fastcall TSampleShape::TGraphicControl(TComponent* Owner) : TGraphicControl(Owner) { } //--------------------------------------------------------------------------- namespace Shapes { void __fastcall PACKAGE Register() { TComponentClass classes[1] = {__classid(TSampleShape)}; RegisterComponents("Samples", classes, 0); } }
//--------------------------------------------------------------------------- #ifndef ShapesH #define ShapesH //--------------------------------------------------------------------------- #include <sysutils.hpp> #include <controls.hpp> #include <classes.hpp> #include <forms.hpp> //--------------------------------------------------------------------------- class PACKAGE TSampleShape : public TGraphicControl { private: protected: public: __published: }; //--------------------------------------------------------------------------- #endif