![]() |
Re: Funktionen mit PascalScript auslagern
Zitat:
|
Re: Funktionen mit PascalScript auslagern
Steht auf der Seite, die wir vorhin verlinkt haben, gaaanz unten.
The component version of Pascal Script also supports execution of scripted functions. This works by using the ExecuteFunction method.
Delphi-Quellcode:
This will execute the function called 'TestFunction' with 3 parameters, a float, an integer and a string. The result will be passed back to ShowMessage.
ShowMessage(CompExec.ExecuteFunction([1234.5678, 4321,
'test'], 'TestFunction')); In deinem Fall vielleicht so...
Delphi-Quellcode:
Ergebnis := CompExec.ExecuteFunction([],'SagWas'));
|
Re: Funktionen mit PascalScript auslagern
Zitat:
Schönes Wochenende Wolfgang |
Re: Funktionen mit PascalScript auslagern
Das ganze mit ExecuteFunction funktioniert. Das Problem lag woanders: Da in meiner Unit kein begin...end. - Block war, konnte er die Funktion nicht aufrufen. In den Compiler-Optionen muss icAllowNoBegin und icAllowNoEnd gesetzt sein oder der Block eingefügt werden, so dass das Skript dann so aussieht:
Delphi-Quellcode:
function TuWas(): String;
begin Result := 'Was'; end; // Und jetzt der leere Block begin end. |
Re: Funktionen mit PascalScript auslagern
Hallo,
wie versprochen hier noch ein Beispiel wie ich eigene Objekte, die auf keine Vorgängerklasse basieren, importiert habe.
Delphi-Quellcode:
procedure TmyObjectValue_Read(Self: TmyObject; var value: string);
begin value := Self.MyValue; end; procedure TmyObjectValue_Write(Self: TmyObject; const value: string); begin Self.MyValue := value; end; procedure RIRegisterMyObjects(Cl: TPSRuntimeClassImporter); begin with Cl.Add( TmyObject ) do begin RegisterPropertyHelper( @TmyObjectValue_Read, @TmyObjectValue_Write, 'MyValue' ); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:31 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