Hier werden alle einzelnen Schritte beschrieben, die nötig sind, um ein Plugin in der Programmierumgebung Delphi zu entwickeln.
Hinweis: Leider kann Delphi in der Personal Edition nicht eingesetzt werden,
da es nicht zulässt ActiveX-Komponenten zu erstellen. Diese Anleitung beschreibt den Vorgang, der nötig
ist, um mit der Delphi Enterprise Edition Version 6 das Plugin zu erstellen. Bei anderen Versionen muss
evtl. von der beschriebenen Vorgehensweise abgewichen werden.
Nun aber zu der Anleitung...
Nach dem Starten von Delphi im Menü -> Datei -> Neu -> Weitere wählen.
In der erscheinenden Objektgallerie den Reiter ActiveX wählen und 'Active Form' selektieren. Mit OK abschließen.
Jetzt den Namen des ActiveX eingeben:
Eventuell kommt nach dem OK ein Hinweis, dass das ActiveX nicht zu einem Projekt hinzugefügt
werden kann, sondern ein neues Projekt erstellt werden muss. Das ist völlig normal.
Die Delphi-Entwicklungsumgebung müsste jetzt ungefähr so aussehen:
Es ist empfehlenswert, das Projet an dieser Stelle erst einmal zu speichern...
... möglichst in einem Verzeichnis, das man oben rechts mit dem 'Neuer Ordner' Icon an einem sinnvollen Ort erstellt.
Nach dem Doppelklicken auf den neu erstellten Ordner können dort nun die Projektdateien gespeicher werden.
Es kommen möglicherweise Speichern-Dialoge für Quelldatei sowie Projekt.
Hinter dem Form-Fenster mit dem Punktraster befindet sich das Haupt-Projektfenster.
Hier nun rechte Maustaste drücken und 'Zur Schnittstelle hinzufügen...' wählen.
In dem erscheinenden Dialog nun 'procedure Init(Value: Integer); safecall;' bei Deklaration angeben.
Hiermit erhält das Plugin den Schlüssel zu den EC&T-Daten: Die Dokument-ID.
Zum Form-Entwurfsfenster mit dem Punktraster zurückgekehrt, kann schon mal ein normales Steuerelement auf die Form gebracht werden.
Einfach oben in der Standard-Komponentenleiste das 'A' drücken und dann auf das Form-Entwurfsfenster klicken.
Mit F12 kann man übrigens schnell zwischen Code-Fenster und Form-Fenster wechseln.
An den Punkten kann Label1 ein bisschen größer gezogen werden.
Um auf EC&T-Daten zugreifen zu können, müssen auch die von EC&T zur Verfügung gestellten ActiveX Elemente in das Projekt gebracht werden.
Dazu unter im Menü unter Komponente -> ActiveX importieren gehen.
Es erscheint der ActiveX-Import Dialog:
Hier das 'EasyCD ActiveX Control Module' wählen (dazu muss EC&T v1.21 installiert sein):
Unter Klassennamen müssen beim Anklicken die Klassen TDokument, TEinstellung und TBuchung ewscheinen.
Einmal ok und einmal 'Ja' klicken.
Unter Menü -> Ansicht -> Projektverwaltung erhält man eine Übersicht über das Projekt und ...
... kann die Form zurückholen, wenn sie sich zwischenzeitlich geschlossen haben sollte.
In der Komponentenleiste nun den Reiter 'ActiveX' wählen und das EasyCash&Tax-Dokumentobjekt (das linke von den dreien) anklicken.
Danach auf die Form klicken und das EC&T-Objekt erscheint dort. (Mit F12 kann man, wie gesagt, zwischen Form- und Code-Ansicht wechseln.)
Jetzt mit F12 zurück in die Code-Ansicht und die Init-Prozedur nun folgendermaßen ergänzen:
procedure TMeinECTPluginX.Init(Value: Integer);
var S: String;
begin
Dokument1.ID := Value;
Str(Dokument1.Jahr, S);
Label1.Caption := S;
end;
Damit erhält das Textfeld Label1, das vorhin erzeugt wurde, das Buchungsjahr des EC&T-Dokuments als Text.
Das funktioniert aber nur, wenn das noch leere Dokument1-Objekt eine Referenz (Dokument.ID) auf ein tatsächlich
existierendes und in der EC&T-Anwendung 'lebendes' Dokument bekommt. Dies erhält die Init-Methode von der EC&T-Applikation.
Mit Menü -> Projekt -> 'Alle Projekte erzeugen' kann man das ActiveX compilieren (hoffentlich fehlerfrei).
Nun muss das ActiveX in der Systemregistrierung angemeldet werden.
Das geschieht im Menü unter Start -> ActiveX Server eintragen.
Mit OK bestätigen:
Nun den Registrierungseditor im Windows-Startmenü unter 'Ausführen' starten:
Im erscheinenden Dialog 'regedit' eingeben und auf OK.
Im 'Tree-View' auf der linken Seite des Registrierungseditors nun folgenden Schlüssel aufblättern:
HKEY_LOCAL_MACHINE\Software\Tools\EasyCash. EasyCash mit der linken Maustaste selektieren,
dann mit der rechten Maustaste darauf klicken und im Kontext-Menü Neu -> Schlüssel wählen
und den Namen des Schlüssels mit 'Plugins' angeben.
Im Plugin-Schlüssel auf gleiche Weise einen
Unterschlüssel mit beliebigem Namen erzeugen, z.B. 'MeineDelphiPluginDemo'.
Der Name sollte möglichst Aussagekräftig sein, um in Zukunft Kollisionen zu vermeiden.
(Für Profis: Optimal wäre es, hier die uuid des ActiveX zu verwenden. Wahrscheinlich aber übertrieben.)
Für den neuen Unterschlüssel 'MeineDelphiPluginDemo' müssen nun vier Werte eingetragen werden.
Das geschieht wie gehabt mit dem Rechtsklick im Kontext-Menü -> Neu, dann aber auf Zeichenfolge.
Die vier Werte bekommen die Namen 'Aufruf', 'Beschreibung', 'Bitmap' und 'Name'.
Während der Wert für Name und Beschreibung egal ist (sollte für die zukünftige Nutzung aber nicht zu willkürlich gesetzt sein)
müssen die anderen beiden Werte genau definiert sein. Für den Aufruf des Plugins wird der Klassenname des ActiveX benötigt.
Er setzt sich zusammen aus dem Projektnamen und dem ActiveX-Namen,
wie er oben im 'Active Form-Experten' Dialog angegeben wurde, getrennt mit einem Punkt, also 'MeinEctPluginProj1.MeinECTPluginX'.
Dies kann im Registrierungseditor im Zweifelsfall unter HKEY_CLASSES_ROOT nachgeschlagen werden.
Im Wert 'Bitmap' steht ein Pfad zu einem 32x32-Punkte GIF-Bild, das in der Plugin-Werkzeugleiste eingeblendet wird.
Damit es schnell geht nehmen wir dieses hier:
Einfach mit der rechten Maustaste draufklicken und mit 'Bild speichern unter...' die GIF-Datei abspeichern.
Wer selbst ein Icon entwerfen möchte, sollte darauf achten, dass das GIF-Bild lediglich eine Palette hat, die die 16 Windows-Systemfarben enthält.
Ansonsten kommt es zu Verfälschungen oder wird bei mehr Farben garnicht mehr dargestellt.
Am besten in das Verzeichnis, in dem auch die eigentliche ActiveX-Datei liegt.
In unserem Fall ist das C:\Programme\Borland\Delphi6\Projects. Bei für weitere Verbreitung gedachte Plugins schlage ich als Speicherort das Verzeichnis 'Plugin\[Pluginname]' im EC&T-Verzeichnis vor, z.B. 'C:\Programme\EasyCash&Tax\Plugins\MeinPlugin'.
Die Werte im Registrierungseditor sehen nun so aus:
Wenn alles gut gelaufen ist, erscheint das Icon des Plugins beim Start von EC&T in einer zusätzlichen Werkzeugleiste. (Hinweis: Zum Ausprobieren des Plugins wird mindestens EC&T v1.21 benötigt.)
Soweit die Theorie, wie es funktionieren müsste. :)
Bei Fehlern, nötigen Änderungen (auch bei anderen Delphi-Versionen) bitte einen kleinen Kommentar an diesen Artikel anhängen (Website-Login notwendig).
Auch Erfahrungsberichte, die anderen Plugin-Enrwicklern die Arbeit erleichtern könnten, bitte mit "Kommentar schreiben" anhängen. |
, 29.11.2005 14:09:08
, 29.11.2005 14:31:21
, 30.11.2005 16:05:30
, 30.11.2005 19:52:37
, 30.11.2005 19:53:48
, 30.11.2005 22:30:01
, 30.11.2005 23:06:57
, 01.12.2005 00:10:32