AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Fastscript Funktion mit Objekt Instanz Parameter
Thema durchsuchen
Ansicht
Themen-Optionen

Fastscript Funktion mit Objekt Instanz Parameter

Ein Thema von dummzeuch · begonnen am 4. Jun 2025 · letzter Beitrag vom 6. Jun 2025
Antwort Antwort
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.701 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Fastscript Funktion mit Objekt Instanz Parameter

  Alt 4. Jun 2025, 11:14
Delphi-Version: 5
Ich würde gerne folgende Funktion in FastScript realisieren:

Delphi-Quellcode:
// Funktion im Script:
function CheckInstance(Inst: TSomeObject): Boolean;
begin
  Result := (Inst.GetValue = 0);
end;
Diese Funktion soll aus meinem Delphi-Programm aufgerufen werden und deshalb wird die TSomeObject-Klasse dort wie folgt definiert:
Delphi-Quellcode:
  cl := FScript.AddClass(TSomeObject, 'TObject');
  cl.AddMethod('function GetValue: integer', MethodSomeObjectGetValue);
Und wie folgt aufgerufen:
Delphi-Quellcode:
  FCurrentObj := TStringList.Create;
  res := FScript.CallFunction('CheckInstance', Integer(FCurrentObj));
Ich erwarte jetzt eigentlich, dass beim Auruf von MethodSomeObjectGetValue der Instance-Parameter den Wert FCurrentObj enthält, er ist aber NIL:
Delphi-Quellcode:
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;
Irgendwas mache ich falsch, vermutlich bei der Parameterübergabe. Aber was?
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von PaPaNi
PaPaNi

Registriert seit: 31. Mär 2022
49 Beiträge
 
#2

AW: Fastscript Funktion mit Objekt Instanz Parameter

  Alt 6. Jun 2025, 10:40
wird es so auch nicht funktionieren?

res := FScript.CallFunction('CheckInstance', [FCurrentObj]);
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.000 Beiträge
 
Delphi 12 Athens
 
#3

AW: Fastscript Funktion mit Objekt Instanz Parameter

  Alt 6. Jun 2025, 11:27
wird es so auch nicht funktionieren?

res := FScript.CallFunction('CheckInstance', [FCurrentObj]);
Das dürfte eigentlich gar nicht kompilieren. Das sieht eher nach etwas aus, das ChatGPT ausspuckt. Variants unterstützen keine Delphi-Objektreferenzen und die eckigen Klammern passen erst recht nicht.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.701 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Fastscript Funktion mit Objekt Instanz Parameter

  Alt 6. Jun 2025, 11:32
Ich hatte auch

res := FScript.CallFunction('CheckInstance', VarArrayOf([Integer(FCurrentObj)])); ausprobiert. (Also Variant Array statt Variant.)

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).
Thomas Mueller
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:37 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