Einzelnen Beitrag anzeigen

Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#6

Re: FastScript - dem Script ein Interface hinzufügen

  Alt 30. Dez 2009, 02:12
Ja und nein. Ich schreibe es nochmal etwas ausführlicher. Um die Basis eines Interface für ein Programm zur Verfügung zu stellen, brauchst Du zum Beispiel diese Klasse :
Delphi-Quellcode:
  TApplicationImpl = class(TInterfacedObject, IApplication)
  private
    FAppIntf: TApplicationImpl;
  public
    constructor Create(aAppIntf: TApplicationImpl);
    // overrides
    function Test_1: WideString;
    function Test_2: Integer;
  end;
Diese Klasse führt Operationen im Programm aus, wie zum Beispiel Daten aus einer Datenbank auslesen. Diese Daten werden nun dem Interface zur Verfügung gestellt und können abgerufen werden. Es geht natürlich auch der Weg rückwärts, also das Schreiben. In dem Sourcecode vom PlugIn hast Du dann folgendes deklariert um auf die Funktionen der Klasse zuzugreifen :
Delphi-Quellcode:
  IApplication = interface(IInterface)['{1C851830-2F05-434F-A4DC-A46482B8332F}'] // <-- Mit STRG+SHIFT+G erstellen
    function Test_1: WideString;
    function Test_2: Integer;
  end;
Über das Interface gereifst Du nun auf die Klasse zu und liest oder schreibst Werte. Zusätzlich sollte es doch möglich sein, dass das Object TApplicationImpl an FastScript übergeben wird mit :
faScript1.AddClass(TApplicationImpl, 'TInterfacedObject'); Jetzt könnte zum Beispiel die Funktion Test_1 irgendeinen Wert von FastScript bekommen und an das Interface weitergeben.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat