AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hydra 3.0 Plugin

Ein Thema von hanspeter · begonnen am 3. Sep 2007 · letzter Beitrag vom 17. Sep 2007
 
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Hydra 3.0 Plugin

  Alt 5. Sep 2007, 13:24
Zitat von luwo:
Hallo Hanspeter,

bei Hydra kannst du Host/Plugin-Kommunikation über Interfaces regeln, siehe auch Beispielprogramme.

Grüße Luwo
So jetzt habe ich es hinbekommen.
Das Teil ist richtig gut. Das Plugin wird als Dll angelegt. Auch mit MDI konnte ich noch keine Probleme entdecken.
Die Hilfe und die Demos in der Trialversion sind ein bischen dürftig, deswegen hatte ich auch die Startprobleme.
Für alle die das Framework mal testen möchten, hier eine Kurzanleitung:

1. Mit dem Wizard ein neues Plugin erzeugen.
Dazu Auswählen ob Visual oder Nonvisual. (Nonvisual setzt auf einem TDataModule auf)
2. Ein Interface für die eigenen Routinen anlegen.
Beispiel:
Delphi-Quellcode:
unit Uinterface;

interface
uses uHYVisualPlugin, uHYIntf, IBDatabase, DB, IBQuery, Classes;

type
 IAnwenderDat = interface(IHYNonVisualPlugin)
  ['{7B475BEC-A93E-4FE2-92A3-340C12F54037}']
    function GetDaten: string;
    procedure SetDaten(Val: string);
    function GetDatabase: TibDatabase;
    function GetQuery: TibQuery;
    function GetListe : TStringList;
  end;
Dieses Interface in dem Plugin einbinden.
Dazu die Definitionszeile anpassen:

Delphi-Quellcode:
type
  { TNonVisualPlugin }
  TNonVisualPlugin = class(THYNonVisualPlugin, IAnwenderDat)
Das Plugin mit den eigenen Methoden erweitern.

Auf der Hostseite kann man sich ebenfalls ein eigenes Projekt generieren lassen und dieses bei
Bedarf in die eigene Application kopieren.

Hier eine Interface - Variable einfügen und das Plugin laden.

Delphi-Quellcode:
with ModuleManager do begin
     LoadModule('NonVisualModule.dll');
     CreateInstance('MyFirstNonVisualPlugin', intfinstance); // See the initialization part of the unit fVisualPlugin.pas
     fNonVisualPlugin := intfinstance as IAnwenderDat;//IHYNonVisualPlugin;
Das wars.

Mit fNonVisualPlugin. ereiche ich alle eigenen Routinen und mit

Delphi-Quellcode:
 ModuleManager.ReleaseInstance(fNonVisualPlugin);
  ModuleManager.UnloadModule(0);
werde ich das Plugin wieder los.
Ein Messagemechanismus von dem Plugin an den Host ist bereits eingebaut.

Die erzeugten Plugin lassen sich sowohl von Delphi Win32 als auch von Net(C#/Chrome) aufrufen
bzw. erzeugen.
Win32 und Net kann somit beinahe beliebig kombiniert werden.

Mit Gruß
Peter
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz