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.