問題タブ [dwscript]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dwscript - DWScript: DLL 内で TdwsGuardianThread.Finalize がフリーズする
dwsExprs が DLL に追加されると、そのファイナライズ セクションがフリーズします。実は TdwsGuardianThread.Finalize は、guardian.WaitFor 行でフリーズしています。
この問題を実証するために、空で dwsCript のみを含むサンプル DLL を作成しました。また、DLL をロードしてすぐに解放するテスト アプリケーションも作成しました。上で述べたように、アプリケーションのフリーズを終了すると (guardian.WaitFor にブレークポイントを置いて確認します。
サンプル DLL:
サンプル アプリケーション:
5月26日にSVNリポジトリから抽出したXE4とDWScriptを使用しています。
どんな助けでも感謝します。
dwscript - DWScript、グローバル変数のプロパティ シンボルを取得する
TRTTIEnvironment をオーバーライドし、関数 FindUnknownName() を実装しています。ExposeInstanceToUnit() によってプログラムに既に公開されている Symbol を返したいと思います。私のスクリプトの中には、グローバル オブジェクトのプロパティがスクリプト内にありますが、オブジェクトが含まれていないものがあります。例えば。グローバル オブジェクト "User" にはプロパティ UserName があります。「UserName」は「User.UserName」ではなくスクリプトにあります。
FindUnknownName のコードは
ここでの問題は、プロパティのクラス Symbol を返すことです。これはクラス プロパティではないため、AV になります。
User のインスタンスのプロパティ シンボルを取得するためのヘルプは大歓迎です。
delphi - モーダル ダイアログからスクリプト関数を呼び出すと、「オブジェクトがインスタンス化されていません」と表示される
次のスクリプト コードから、Delphi から Run プロシージャを呼び出します。このプロシージャは、Delphi にもある showmodal プロシージャを呼び出します。新しく作成されたモーダル ダイアログから Button1Click() を呼び出すと、グローバル変数 sl がインスタンス化されません。
スクリプト コード。
Delphi サイド コード。
1) Run() を呼び出す
2) ショーモーダル評価
3) 同じ IdwsProgramExecution オブジェクトを使用してモーダル ダイアログから Button1Click を呼び出す
この時点で、「オブジェクトがインスタンス化されていません」というエラーが表示されます。ダイアログを閉じた後、何も表示されていない showmessage が表示されます。
delphi - 「{$F 'filename'}」とは正確にはどういう意味ですか?
DWScriptのドキュメントに「{$F 'filename'}」とあるのですが、意味がわかりません。それを説明することは可能ですか?
delphi - DWScript は、Android および IO 用の Delphi XE5 コードを作成するために互換性がありますか?
Delphi XE5 プログラムで DWScript クラスを使用して Android や IO で実行し、スクリプトを機能させることはできますか?
delphi - DWScript からクラスのプロシージャを呼び出す
メイン フォームで作成されたクラスからプロシージャを呼び出すにはどうすればよいですか。この擬似コードが示すように実行できますか?