[Dmonkey-dev] 初めまして(TJObjectの外でオブジェクトを作成するには ?)

Back to archive index

tout tout****@users*****
2004年 2月 8日 (日) 06:08:19 JST


どもども初めまして、toutと申します。Katfav(http://katfav.sourceforge.jp/)という
ソフトで、DMonkey(以下DMS)を使わせてもらっています。このたび、DMSのバージョンを
0.2.1.1から0.3.5に上げたのですが、以前のコードが動かないので困っています。具体的
には次のコードになります(0.2.1.1で動いていたコード)。

---ここから----
function TKatfavScriptManager.DoGetBoardUrl(PathInfo: TStringList;
  const ServerName, BoardName: string): string;
var
	JStrings: TJStringsObject;
	RetValue: TJValue;
begin
	JStrings := TJStringsObject.Create(DMonkey.Factory, nil);
	try
		JStrings.IncRefCount;
		JStrings.Strings.Assign(PathInfo);
		if not DMonkey.CallFunction('GetBoardUrl', [JStrings, ServerName, 
BoardName], RetValue) then
		begin
			{ 呼び出しに失敗 }
			Katjusha.DoKatjushaGetBoardUrl := nil;
			Result := TKatjusha.DefaultGetBoardUrl(ServerName, BoardName);
			Exit;
		end;
		Result := AsString(@RetValue);
	finally
		JStrings.DecRefCount;
	end;
end;
---ここまで---
CallFunctionの引数として自前でCreateしたオブジェクトを渡したいのですが、
DMS0.3.5ではコンストラクタが次のように変わっていてオブジェクトを作成する
やり方が分かりません。具体的にはAEngineに指定できるTJBaseEngine(またはそ
の派生クラス)をどこから得ればいいか分からないのです。TDMonkeyやTJObjectF
actoryなどにTJBaseEngineがプライベートメンバとして存在していますが、アク
セスできません。
	constructor Create(AEngine: TJBaseEngine; Param: TJValueList = nil; 
		RegisteringFactory: Boolean = True); override;

今までと全く違うやり方になるんでしょうか?。教えてください。
あと、質問する場合はこちらのメーリングリストのほうがいいのでしょうか?。
このMLはほとんど使われていないようですが。それともsf.jpの公開フォーラム
のほうがいいんでしょうか。あちらも放置されているようです。
以上。




Dmonkey-dev メーリングリストの案内
Back to archive index