Die geänderte Komponente erstellen und registrieren

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Vorhandene Komponenten modifizieren - Index

Alle Komponenten werden nach dem gleichen Prinzip erstellt: Sie erzeugen eine Unit, leiten eine Komponentenklasse ab, registrieren sie 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:

  • Eine Komponenten-Unit namens Memos anlegen.
  • Einen neuen Komponententyp TWrapMemo von TMemo ableiten.
  • TWrapMemo in der Kategorie Beispiele der Tool-Palette platzieren.
  • Die daraus resultierende Unit sollte wie folgt aussehen:
unit Memos;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, StdCtrls;

type
  TWrapMemo = class(TMemo)
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Beispiele', [TWrapMemo]);
end;

end.
#include <vcl.h>
#pragma hdrstop
#include "Yelmemo.h"
//---------------------------------------------------------------------------
#pragma package(smart_init);
//---------------------------------------------------------------------------
// Durch ValidCtrCheck wird sichergestellt, dass die erstellen Komponenten
// keine virtuellen Funktionen haben.
//
static inline void ValidCtrCheck(TYellowMemo *)
{
  new TYellowMemo(NULL);
}
//---------------------------------------------------------------------------
__fastcall TYellowMemo::TYellowMemo(TComponent* Owner)
: TMemo(Owner)
{
}
//---------------------------------------------------------------------------
namespace Yelmemo
{
  void __fastcall PACKAGE Register()
  {
    TComponentClass classes[1] = {__classid(TYellowMemo)};
    RegisterComponents("Beispiele", classes, 0);
  }
}
#ifndef YelMemoH
#define YelmemoH
//---------------------------------------------------------------------------
#include <sysutils.hpp>
#include <controls.hpp>
#include <classes.hpp>
#include <forms.hpp>
#include <StdCtrls.hpp>
//---------------------------------------------------------------------------
class PACKAGE TYellowMemo : public TMemo
{
  private:
  protected:
  public:
  __published:
};
//---------------------------------------------------------------------------
#endif

Wenn Sie die neue Komponente nun compilieren und installieren, funktioniert sie genau so wie der Vorfahre TMemo. Im nächsten Abschnitt soll nun eine einfache Änderung vorgenommen werden.