制限付きの RTTI エクスポーザと RTTI コネクタがあり、RTTI を介して Delphi クラスにアクセスできます。
ただし、ほとんどの Delphi クラスはスクリプトに使用するのが「安全」ではないため、これらの RTTI ツールはあまり調査されていません。つまり、ホストをクラッシュさせたり、メモリ リークを起こしたりするのは簡単です。そのため、「生の」Delphi クラスは通常、エンド ユーザーのスクリプト作成には適していません(つまり、エンド ユーザーにはエラーを起こす権利がなく、安定したデバッグを提供するためなど)。
TdwsUnit のイベント ハンドラーで公開されたクラスを手動で公開および強化する代わりに、クラスを OLE オートメーション オブジェクトとして公開し、DWScript COM コネクタを使用してそれらにアクセスできます。利点は、オートメーション オブジェクトを公開するために、通常は、メモリ リークやダングリング ポインターに対して少なくとも最小限の強化を行う必要があり、他の COM 対応環境からオートメーション クラスにアクセスできることです。
RTTI がうまくいかない例として、TComponent や TCollection などの完全に自動管理された VCL クラスを考えてみましょう。生の RTTI エクスポージャーしかない場合は、次のようなスクリプトではありません。
item := myCollection.Add;
myCollection.Clear;
item.Caption := 'hello bug';
ホスト アプリケーションでメモリがランダムに上書きされ、潜在的なエラーについてスクリプト ユーザーに通知する安全な方法はありません。
今後の Delphi ARC コンパイラは、一部のクラスのメモリの上書きを軽減する方法を提供する可能性があります(すべてではないですが、ARC が現在 TComponent などで実装/回避されている方法のため)。また、Delphi ARC コンパイラは現在サポートされていません (さまざまな理由から、最も顕著な理由は、現在アクセスできないことです)。