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
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