Forums: Forum d’aide (Thread #8403)

スクリプト内の関数をアプリケーション側から呼ぶ (2005-08-14 22:11 by Anonyme #15806)

スクリプト内の関数をアプリケーション側から呼ぶ事はできるのでしょうか?
以下のような感じで使いたいのです。

//スクリプト側
function testFunc (a, b) {
println(a + b);
}

obj = new TestObj();
obj.call(testFunc);

//アプリケーション側(TestObjクラス)
function TTestObj.call(Param: TJValueList): TJValue;
begin
//ここで引数を設定して testFunc を呼ぶ
end;

Répondre à 15806×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: スクリプト内の関数をアプリケーション側から呼ぶ (2005-08-16 19:57 by shobohn #15831)

こんな感じでしょうか

function TTestObj.call(Param: TJValueList): TJValue;
var
v: TJValue;
prm: TJValueList;
begin
EmptyValue(Result);
if IsParam1(Param) then
begin
v := Param[0];
if IsFunction(@v) and Assined(FEngine) then
begin
prm := TJValueList.Create;
try
prm.Add('関数に渡す引数1');
prm.Add('関数に渡す引数2');
Result := TJEngine(FEngine).CallExpr(v.vFunction,prm,Self);
finally
prm.Free;
end;
end;
end;
end;
Répondre à #15806

Répondre à 15831×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: スクリプト内の関数をアプリケーション側から呼ぶ (2005-08-16 20:25 by shobohn #15832)

補足です。

ユニットのimplementation以下に

uses ecma_engine;

を追加してください。
Répondre à #15831

Répondre à 15832×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: スクリプト内の関数をアプリケーション側から呼ぶ (2005-08-16 20:47 by shobohn #15833)

×Assined
○Assigned
です。
Répondre à #15832

Répondre à 15833×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

ありがとうございます。 (2005-08-17 05:48 by Anonyme #15842)

質問させていただいた物です。

御陰様でうまいこと実装できました。

アプリケーション側で持っているある程度の多さのデータから条件に基づくデータのみ抜き出す・・
ということがやりたかったのですがこれで複雑な条件でも問題なくなりそうです。
Répondre à #15806

Répondre à 15842×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion