スクリプトが埋め込まれた VCL (Delphi Win32) フォーム アプリケーション プラットフォームに取り組んでおり、デバッグ サポートを追加したいと考えています。スクリプトはメインの VCL スレッドで実行されます。スクリプトは UI 操作を直接実行し、UI スレッドでそれを保持するその他の従来の制約があります。
メイン UI スレッドはスクリプト ブレークポイントでブロックされるため、デバッガー UI は独自のスレッドで実行する必要があります。スレッド セーフなデバッグ コンポーネントが機能するには、同じプロセス内にある必要があります。
https://stackoverflow.com/a/12505959/243144に関する Blorgbeard のコメントに従おうとしましたが、これが Delphi の VCL でも可能かどうかはわかりません。(.NET は、フォームを Application.Run に渡すときに新しい ApplicationContext を作成します)次の Delphi では、メイン UI スレッドをブロックすると、2 番目のスレッドでのメッセージ処理が停止します(逆も同様)。
procedure TDebuggerThread.Execute;
begin
CoInitialize(nil);
FForm := TForm2.Create(nil);
FForm.Show;
Application.Run;
end;