0

TRTTIEnvironment をオーバーライドし、関数 FindUnknownName() を実装しています。ExposeInstanceToUnit() によってプログラムに既に公開されている Symbol を返したいと思います。私のスクリプトの中には、グローバル オブジェクトのプロパティがスクリプト内にありますが、オブジェクトが含まれていないものがあります。例えば。グローバル オブジェクト "User" にはプロパティ UserName があります。「UserName」は「User.UserName」ではなくスクリプトにあります。

FindUnknownName のコードは

sym := compiler.CurrentProg.Table.FindSymbol("User", cvMagic);
result := TPropertySymbol(TClassSymbol(sym.Typ).Members.FindSymbol(name, cvMagic)).ReadSym;

ここでの問題は、プロパティのクラス Symbol を返すことです。これはクラス プロパティではないため、AV になります。

User のインスタンスのプロパティ シンボルを取得するためのヘルプは大歓迎です。

4

0 に答える 0