DWScript でエントリ ポイントを設定する方法はありますか?
たとえば、スクリプトの実行を開始する場合、通常のエントリ ポイント (begin ... end.) のコードではなく、プロシージャ Main を実行したいと考えています。
Delphi から関数を実行できることは知っていますが、これがまったく同じかどうかはわかりません。
あなたを書いてprocedure Main();
、通常のスクリプトエントリポイントを呼び出しだけで構成することは別としてMain
、これはおそらくあなたが考えていることではありません.DWSでそれを行う方法はありません.
構文におけるすべての革新にもかかわらず、DWS は依然として Pascal であり、Pascal の動作方法で動作します。ある種の名前付きMain
ルーチンを要求することは、Pascal スタイルから根本的に逸脱することになります。
編集:コメントに投稿された説明に答えるには:
スクリプトで新しいスクリプト スレッドを生成する場合は、それを外部の Delphi コードで処理する必要があります。これを書いている時点では、DWS システムにはマルチスレッドの概念が組み込まれていません。そうしたい場合は、次のようにします。
のような外部ルーチンを作成しますSpawnThread(EntryPoint: string)
。その eval メソッド(Native-Delphi-land にある)は、現在のスクリプトをロードする新しいスレッドを生成し、指定された名前のルーチンを見つけて実行します。
これが、言語レベルのサポートなしで機能させる唯一の方法です。DWS 内からスレッドを生成する方法が必要な場合は、課題トラッカーに機能リクエストとして追加してみてください。