Eigene Komponenten

Mit Delphi for PHP ist es einfach möglich eigene Komponenten zu erstellen und zu benutzen. Mit dem Komponenten-Wizard erstellen Sie ganz einfach das Grundgerüst für eigene Komponenten. Selbst erstellt Komponenten können später genauso eingesetzt werden wie die bereits vorhandenen Komponenten.

Eigene Komponente erstellen

  1. Wählen Sie 'Component > New Component' um den Komponenten-Wizard zu öffnen.
  2. Unter 'Ancestor Type' wählen Sie eine der bereits installieren Komponenten als Vorfahren. Dieser wird als Basis für Ihre Komponente benutzt.
  3. Geben Sie unter 'Classname einen Namen für Ihre Komponente ein. Für ein Komponente die als Vorfahre Button hat könnte der Name z. B. GraphicButton sein.
  4. Wählen Sie unter 'Palette Page' die Seite aus, auf der Sie Ihre Komponente installieren möchten.
  5. Wählen Sie 'Create Package', wenn Sie eine neue Package-Datei für Ihre Komponente erstellen möchten.
  6. Klicken Sie auf 'OK'.

Der Wizard erstellt 2 Dateien für die Komponente: Eine mit der Dateiendung 'inc.php' mit dem Quelltext der Komponente und eine Package-Datei mit der Endung ' .package.php'. Sie können den Namen beim Speichern der Datei ändern. Wenn Sie einen anderen Namen für die Komponenten-Datei, muss der Name beim Aufruf von 'RegisterComponents' in der Package-Datei ebenfalls geändert werden.

Eine VCL-Komponente muss die Datei 'vcl.inc.php' sowie die unit der Basis-Klasse einbinden. Dies wird vom Wizard automatisch erledigt.
Beispiel:

// Includes
require_once("vcl/vcl.inc.php");
use_unit("stdctrls.inc.php");

Nun kann die Komponente angepasst und gespeichert werden.
Anschließend wird die Komponente in die Tool-Palette installiert. Wählen Sie dazu 'Component > Packages' und fügen Sie Ihre neue Package-Datei hinzu.

Komponente speichern

Wenn sie Ihre komponente erstellt haben, speichern Sie diese im VCL-Ordner von Delphi for PHP. Sie können auch einen Unterordner im VCL-Ordner für ihre eigenen Komponenten anlegen. Dadurch bleiben die zu Delphi for PHP gehörigen Komponenten unangetastet und Sie können Ihre Komponenten leichter verwalten und anderen Benutzern zur Verfügung stellen.

Um die Komponente zu speichern gehen Sie folgendermaßen vor:

  1. Wählen Sie in Delphi for PHP die Package-Datei aus ('<Komponentenname>.package.php').
  2. Wählen Sie den Menüpunkt 'File->Save As'.
  3. Navigieren Sie zum Ordner <Delphi for PHP>/vcl (meistens unter 'C:/Programme/Codegear/...').
  4. Erstellen Sie gegebenenfalls einen neuen Ordner innerhalb des vcl-Ordners (z. B. 'Delphi for PHP/vcl/mynewcomponent'). Speichern Sie die package-Datei.
  5. Wählen Sie die Komponenten-Datei in de IDE aus ('<Komponentenname>.inc.php').
  6. Speichern Sie diese Datei im gleichen Verzeichnis.
  7. Speicher Sie alle eventuell zur Komponente gehörende Dateien im gleichen Verzeichnis.

Eigenschaften für eigene Komponenten erstellen

  1. Öffnen Sie den Quelltext der Komponente im Code-Editor
  2. Wählen Sie 'Edit -> Add Public Property' um den Eigenschafts-Editor zu öffnen. Um eine Eigenschaft zu erstellen, die später im Object-Inspector geändert werden kann wählen Sie 'Add Published Property.
  3. Geben Sie einen Name für die neue Eigenschaft und einen Standard-Wert (Voreinstellung) ein. Text-Werte müssen in doppelte Anführungszeichen eingegeben werden.
  4. Klicken Sie auf OK

Der zugehörige Quelltext wird automatisch generiert. Geben Sie beispielsweise Als Eigenschaft 'Info' an und als Wert "Infotext" wird folgender Quelltext generiert:

//Class definition
protected $_info="Infotext";

function readInfo() { return $this->_info; }
function writeInfo($value) { $this->_info=$value; }
function defaultInfo() { return "Infotext"; }

Der Quelltext kann später angepasst werden.

Packages

Mehrere Komponenten können zu einem Package zusammengefasst werden. In Delphi for PHP sind folgende Packages bereits vorhanden: Standard, Advanced, System, Database, Native Interbase, Web Services, Sample.

Komponenten hinzufügen

Sie können zu den vorhanden Packages Ihre selbst programmierten Komponenten hinzufügen. Dazu wählen Sie für jede neue Komponente, die Sie hinzufügen wollen den Menüpunkt Component->New Component. Tragen Sie dort die Klasse für Ihre Komponente sowie die Klasse, von der Ihre Komponente abgeleitet wurde ein. Wählen Sie eine Kategorie für die Tool-Palette aus und deaktivieren Sie die Option Create Package. Speichern Sie Ihre Komponente im selben Ordners wie das Package (meistens vcl) oder in einem Unterordner davon. Öffnen Sie dann das zugehörige Package-File und fügen Sie für jede Komponente einen registerComponents-Aufruf hinzu. Für die Komponente NewLabel könnte der Eintrag beispielsweise lauten:

registerComponent("Samples", array("NewLabel"), "NewLabel.inc.php");

Installieren Sie Ihr Package in der Delphi-IDE.

Packages hinzufügen

Sie können für eigene Komponenten eine Package-Datei erstellen. Eine Package-Datei ist eine PHP-Datei mit den notwendigen Informationen um die Komponenten in der Toolpalette zu installieren. Sie muss innerhalb des VCL-Ordners gespeichert werden, wobei jedoch eigene Unterordner angelegt werden können.

Um eine Package-Datei hinzuzufügen wählen Sie den Menüpunkt "Component -> Packages", klicken dann den "Add"-Button und wählen die Package-Datei aus. Anschließend finden Sie die enthaltenen Komponenten in der Toolpalette.

Icon für Komponente erstellen

Sie können für Ihre selbst erstellen Komponenten ein Icon (kleines Bild) hinzufügen. Dieses wird dann in der Toolpalette mit angezeigt.
Für die Icons der eigenen Komponenten erstellen Sie einen Unterordner icons im Ordner vcl des Delphi-Verzeichnisses. Erstellen Sie mit Ihrer Bildbearbeitung ein Bitmap-File und speichern Sie dies im Ordner icons. Als Namen für das Icon müssen Sie exakt den Namen der Komponente benutzen - andernfalls kann Delphi das Icon nicht der Komponente zuordnen. Zum Schluß ändern Sie noch den Pfad für das Icon. Öffnen Sie dazu das Package-File und ändern Sie dort den Pfad in setIconPath() auf 'icons'.

Eigene Komponenten installieren

Nach dem Erstellen und Speichern der selbst erstellten Komponente kann diese in der Tool-Palette installiert werden. Hierzu muss die 'Package-Datei' entsprechend angepasst werden. Diese enthält alle benötigten Informationen zu den enthaltenen Komponenten.

Die Komponenten- und Package-Dateien müssen im Ordner 'VCL' im Delphi-Programmordner gespeichert werden (bei Standard-Installation: 'C:\Programme\CodeGear\ Delphi for PHP\1.0\VCL'). Es empfiehlt sich für die eigenen Komponenten einen Unterordner (unter 'VCL') anzulegen um die eigenen Komponenten unabhängig von den bereits vorhandenen zu pflegen.

Um eine eigene Komponente in der Tool-Palette zu installieren muss die Package-Datei folgendermaßen angepaßt werden:

  1. Öffnen Sie die zugehörige Package-Datei in Delphi for PHP
  2. Ersetzen Sie den String mit dem Namen der Komponente in der Anweisung 'setPackageTitle("...") - beispielsweise setPackageTitle("MyButton Package").
  3. Ändern Sie den Pfad in der Anweisung 'setIconPath' auf den Pfad des Icons für Ihre Komponente.
  4. Die Anweisung 'registerComponents muss der Name der Seite in der Tool-Palette (z. B. Samples), der Komponenten-Name sowie der Name der Quelltext-Datei für die Komponente enthalten. Beispiel: registerComponents("Samples",array("MyButton"),"mybutton_unit.inc.php").
  5. Wenn die Package-Datei entsprechend angepasst und gespeichert wurde wählen Sie 'Component -> Packages' um die Package-Datei in einzubinden.
  6. Klicken Sie auf 'Add' und wählen Sie die Package-Datei aus. Mit dem Schalter 'Components' können Sie sich die zum aktuell markierten Package gehörigen Komponenten anzeigen lassen.
  7. Klicken Sie auf 'OK' - nun sollte Ihre Komponente in der Tool-Palette zu finden sein.

 

 

Impressum: Jörg Siebrands, Lüneburger Schanze 1, 21614 Buxtehude
Tipp: Besuchen Sie auch meine Website zur Fußballweltmeisterschaft 2010