System.TypInfo.TPropInfoは(少なくともD-XE3で)2人の関数のメンバーを持っています。彼らは何であり、どのように使用することができますか? (希望が1つの質問に限定されることを期待してください)。文書化されていないメンバー
5
A
答えて
2
NameFld関数は、プロパティの名前をTTypeInfoFieldAccessor
として返します。
これは、あなたが次のことを行うことができます:
MyPropertyName:= MyPropInfo.NameFld.ToString;
if (PropInfoA.NameFld = PropInfoB.NameFld) then begin
writeln('property names are the same');
end;
TTypeInfoFieldAccessorは内部shortstringのプロパティの名前を格納します。
NextGenコンパイラはショートストリングをサポートしていないため、PByte
タイプが使用されます。
(私は著者がごみにifdefsとソースをしたいとPShortstring参照をリッピングしていないと思います)
Tail
の入力は、内部のShortStringの長さフィールドを指しPBYTEです。
ここにはテールのソースコードがあります。
function TTypeInfoFieldAccessor.Tail: PByte;
begin
Result:=
FData //Start of the shortstring
+ FData^ + //Length of the stringData
+ 1; //Add one for the length byte itself
end;
shortstringsがNULL終端ではありませんので、ループの一種「ヌル文字が発見されるまでループ」は、簡単な操作を行うことはできません。
したがって、短い文字列を通常の文字列に変換するために、最初から最後までのループを使用できます。
実際のRTLソースコードでは不思議にも、長さバイトはtail
関数の代わりにどこでも使用されます。それは残っているように見えます。
size
機能を含めると、tail
を取り除く方が意味があります。
関連する問題
- 1. 文書化されていないString.compareTo(ヌル)NPE?
- 2. 文書化されていない関数パラメータを表示
- 3. 文書化されていないOpen Graphコールのステータス?
- 4. Qtでの文書化されていないクラスの使用について
- 5. VS2010ソリューションで文書化されていないコードメンバーを見つける
- 6. Angularの文書化されていない機能は何ですか?
- 7. 文書化されていない既存のプロジェクトでの作業方法は?
- 8. 文書化されていないWindows組み込みのPDFレンダラ機能?
- 9. emberバインディングが文書化されているように動作しない
- 10. 文書化されていないJava Eclipseプロジェクトをマッピングするためのアドバイス
- 11. 同期中に文書化されていないExchange ActiveSyncのステータス
- 12. Axis2 Java - 要求で直列化されていないADB配列メンバー
- 13. Time.advanceはどこに文書化されていますか?
- 14. sun.misc.Unsafeはどこに文書化されていますか?
- 15. AndroidのJavaScript環境は文書化されていますか?
- 16. kSecAttrTokenIDSecureEnclaveはどこに文書化されていますか?
- 17. NSXMLはどこに文書化されていますか?
- 18. 文書化された検索パスからDLLがロードされない
- 19. 可能なVisualStates for Windows 8 Metroコントロールは文書化されていますか?
- 20. HTML5は十分に開発され、文書化されていますか?
- 21. 文書化されていないiPhone SDKの機能を使用していますか?私のアプリで
- 22. NameError:初期化されていない定数 - ActiveRecordで許可されていない構文ですか?
- 23. rpmbuildインストールされている(パッケージ化されていない)ファイルソース
- 24. 変数はDoxygenを使用して文書化されていません
- 25. kotlin.MetaDataに保持されているデータの形式はどこに文書化されていますか?
- 26. 募集:文書化されたクロスブラウザの違いのリソース
- 27. com.sun.media.soundパッケージがJava SE 6 apidocで文書化されていないのはなぜですか?
- 28. Mathematicaのこれらの文書化されていないスタイルオプションは何をするのですか?
- 29. ドキュメント化されていない例外
- 30. スレッド化されていないスレッドがスレッド化されていないものより遅い