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の公開フォーラム のほうがいいんでしょうか。あちらも放置されているようです。 以上。