08.09.2025 10:34:39
Navigation
· Bugtracker
· Kontakt
· Web Links
· Suche
· Buchtipps
Login
Benutzername

Passwort



Noch kein Mitglied?
Klicke hier um dich zu registrieren

Passwort vergessen?
Um ein neues Passwort anzufordern klicke hier.
Mitglieder Online
· Gäste Online: 9

· Mitglieder Online: 0

· Mitglieder insgesamt: 15,257
· Neuestes Mitglied: peterluehr
Foren Themen
Neueste Themen
· PC-Wechsel von Win 1...
· Die Sache mit der E-...
· CSV-Input
· Fehlermeldung "Die S...
· Fehlermeldung Plausi...
Heißeste Themen
Keine Themen erstellt
Artikel Navigation
Artikel Übersicht » Plugin-Entwicklung » Schritt-für-Schritt Anleitung zur Erstellung eines Plugins mit Delphi
Schritt-für-Schritt Anleitung zur Erstellung eines Plugins mit Delphi

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.

Kommentare
173 #1 Kharlanki
, 29.11.2005 14:09:08
Ich bin eben deine Anleitung fuer Delphi durchgegangen (D7), komme aber nur bis zum Punkt, an dem ich das Plugin erzeugen soll. Delphi meckert naemlich, es wuerde Dokument1.ID und Dokument1.Jahr nicht kennen.
Was mache ich falsch?
173 #2 Kharlanki
, 29.11.2005 14:31:21
In der Registry finde ich aber auch nur unter
HKEY_USERS\S-1-5-21-1343024091-179605362-839522115-1000\Software\Tools\EasyCash
den Schluessel EasyCash und nicht unter LOCAL_MACHINE...
1 #3 mielket
, 30.11.2005 16:05:30
Hast Du bei Dir das Dokument1 Objekt auf der Form, wie in dem 21. Bild gezeigt? Wenn Du in der Entwurfsansicht draufklickst, müsstest Du die Eigenschaften vom Objekt Dokument1 im eigenschaftsfenster sehen, darunter auch ID und Jahr.

Zur Sicherheit kannst Du nochmal die aktuellste EasyCTX.ocx herunterladen, in der auch das Dokument-Control steckt:

http://easyct.no-ip.org/download/Easy...asyCTX.zip

Das Visual C++ hatte mir zwischenzeitlich mal die Schnittstelle des ActiveX durcheinandergebracht, mit der auf die Eigenschaften und Methoden der Objekte zugegriffen wird und ich hatte das für kurze Zeit auf dem Server liegen.

Du musst in der Registry übrigens nach 'EasyCTX' statt 'EasyCash' suchen.
173 #4 Kharlanki
, 30.11.2005 19:52:37
Ich habe die installierte ocx mit der aus dem ZIP verglichen: Demnach habe ich bereits die aktuelle... Wenn ich auf das Icon klicke, sehe ich aber weder ID noch Jahr (nur Tag *hehe*)... Als Eigenschaften werden mir angezeigt:
Anchors, Cursor, Height, HelpContext, HelpKeyword, HelpType, Hint, Left, Name, Tag, Top und Width.
173 #5 Kharlanki
, 30.11.2005 19:53:48
Und "EasyCTX" ist in meiner Registry auch nicht zu finden...Sad
1 #6 mielket
, 30.11.2005 22:30:01
Unter HKEY_CLASSES_ROOT müssten sich die drei Controls EASYCTX.BuchungCtrl.1, EASYCTX.DokumentCtrl.1 und EASYCTX.EinstellungCtrl.1 befinden. Ansonsten hätten die in Delphi doch garnicht importiert werden können?!? Rätselhaft.

Geht denn die About-Box des Controls oder die Hilfe? (auch bei den Eigenschaften)
173 #7 Kharlanki
, 30.11.2005 23:06:57
Hab die drei Eintraege gefunden. War wohl blind. Wink
"Eigenschaft" und "Info von Dokument Control" gehen auch...
1 #8 mielket
, 01.12.2005 00:10:32
Ich schicke Dir mal ein Beispiel-Projekt per mail. Vielleicht funktioniert es damit.
Kommentar schreiben
Bitte logge dich ein, um einen Kommentar zu verfassen.
Bewertungen
Bitte logge dich ein, um eine Bewertung abzugeben.

Es wurden noch keine Bewertungen abgegeben.
Forensuche


Shoutbox
Du musst dich einloggen um eine Nachricht zu senden.

Thomas R
26.07.2025 18:26:06
@kkoefteg Steuernummer ohne Querstriche eingetragen?

kkoefteg
25.07.2025 18:02:09
Hallo, Ich bekomme die Fehlermeldung "Die Steuernummer in ECT-Einstellung ist ungültig", wenn Ich ÜER 2024 über "Elster Export" an das Finanzamt übertragen möchte. Kennt ihr das

Thomas R
15.07.2025 14:19:20
@Suza Welcher Button genau. In der Regel kann man das durch klicken auf den kleinen Pfeil im Button dann einstellen.

Suza
14.07.2025 16:07:07
Hallo, Mein Saldo Buttom zeigt nur 2 Quartale, wie kann ich das ändern?

mabuse
09.07.2025 16:47:41
@mielket deutsches Tastaturlayout. Allerdings englisches MacOS System. Hab ne Lösung gefunden, schreib ich ins Forum

mielket
07.07.2025 10:08:00
@mabuse Nein, nicht bekannt. EC&T benutzt den Dezimaltrenner des Betriebssystems. Ist es vielleicht ein Mac mit englischen Sprache?

mabuse
05.07.2025 21:15:20
Ist bekannt, dass auf Mac ein Komma in einer Buchung ignoriert wird? 12,30 = 1230 Stattdessen muss ich einen Punkt angeben. Version 3.4, MacOS 15.5

mielket
13.06.2025 12:29:06
@Palindrom nein, muss immer noch manuell gemacht werden gem. https://www.easyct
.de/forum/viewthre
a...ad_id=2738

mielket
13.06.2025 12:27:26
@mycomeu ansonsten macht eine summen- und saldenliste nur sinn in einer doppelten buchführung.

Thomas R
12.06.2025 16:16:51
@mycomeu Da der Anfangsbestand in der EUR immer 0,00€ ist geht das über Button Journal > Sortierung nach Konten oder über Button Konto.

Palindrom
12.06.2025 14:22:43
Werden mittlerweile für Reverse Charge RE automatisch Buchungssätze für die Steuer (USt/VSt) erstellt?

mycomeu
12.06.2025 09:02:59
gibt es eine summen und saldenliste im programm

mielket
11.06.2025 10:44:47
Nein, Neuinstallations- Voodoo hilft hier wohl nicht, nur ein vernünftiges Datenverzeichnis einzurichten hilft.

oekolog
10.06.2025 14:51:03
danke für die Nachricht kann ich durch eine Neuinstallation mit einem neuen Buchungsdatei wieder anfangen?

mielket
10.06.2025 14:25:14
Mein Verdacht: Datenverzeichnis falsch eingestellt und das Programm versucht die Buchungsdatei im von Windows geschützten Programmverzeichni
s zu speichern.

32,001,714 eindeutige Besuche