![]() |
Delphi-Version: 5
Fastscript Funktion mit Objekt Instanz Parameter
Ich würde gerne folgende Funktion in FastScript realisieren:
Delphi-Quellcode:
Diese Funktion soll aus meinem Delphi-Programm aufgerufen werden und deshalb wird die TSomeObject-Klasse dort wie folgt definiert:
// Funktion im Script:
function CheckInstance(Inst: TSomeObject): Boolean; begin Result := (Inst.GetValue = 0); end;
Delphi-Quellcode:
Und wie folgt aufgerufen:
cl := FScript.AddClass(TSomeObject, 'TObject');
cl.AddMethod('function GetValue: integer', MethodSomeObjectGetValue);
Delphi-Quellcode:
Ich erwarte jetzt eigentlich, dass beim Auruf von MethodSomeObjectGetValue der Instance-Parameter den Wert FCurrentObj enthält, er ist aber NIL:
FCurrentObj := TStringList.Create;
res := FScript.CallFunction('CheckInstance', Integer(FCurrentObj));
Delphi-Quellcode:
Irgendwas mache ich falsch, vermutlich bei der Parameterübergabe. Aber was?
function TMyStript.MethodSomeObjectGetValue(_Instance: TObject; _ClassType: TClass;
const _MethodName: string; _Caller: TfsMethodHelper): Variant; begin // function GetValue: integer Assert(Integer(_Instance) = Integer(FCurrentObj), 'ungueltiger Instance-Wert'); // .... weiterer Code end; |
AW: Fastscript Funktion mit Objekt Instanz Parameter
wird es so auch nicht funktionieren?
Delphi-Quellcode:
res := FScript.CallFunction('CheckInstance', [FCurrentObj]);
|
AW: Fastscript Funktion mit Objekt Instanz Parameter
Zitat:
|
AW: Fastscript Funktion mit Objekt Instanz Parameter
Ich hatte auch
Delphi-Quellcode:
ausprobiert. (Also Variant Array statt Variant.)
res := FScript.CallFunction('CheckInstance', VarArrayOf([Integer(FCurrentObj)]));
Aber auch das funktioniert nicht. Wobei FastScript beides gleich behandelt (in den Teil bin ich rein-ge-stept und habe ihn (hoffentlich) auch verstanden, aber weiter wird's mir dann zu konfus). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 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