Die Komponente erstellen und registrieren

Aus RAD Studio
Wechseln zu: Navigation, Suche

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:

  1. Geben Sie der Komponenten-Unit den Namen Shapes
  2. Leiten Sie von TGraphicControl den neuen Komponententyp TSampleShape ab.
  3. 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
   RegisterComponents(Beispiele', [TSampleShape]);
 end;
 end.



 //---------------------------------------------------------------------------
 #include <vcl.h>
 #pragma hdrstop
 #include "Shapes.h"
 //---------------------------------------------------------------------------
 #pragma package(smart_init);
 //---------------------------------------------------------------------------
 // Durch ValidCtrCheck wird sichergestellt, dass die erstellen Komponenten
 // keine virtuellen Funktionen haben.
 //
 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("Beispiele", 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