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. Doxygen文書化されていない文字列の値
- 2. 文書化されていないExcelの数式構文? = Rx:Ry
- 3. 文書化されていないOpen Graphコールのステータス?
- 4. 文書化されていないString.compareTo(ヌル)NPE?
- 5. PB - 文書化されていないcolumn.computeプロパティ
- 6. 文書化されていない関数パラメータを表示
- 7. Qtでの文書化されていないクラスの使用について
- 8. 同期中に文書化されていないExchange ActiveSyncのステータス
- 9. 文書化されていない既存のプロジェクトでの作業方法は?
- 10. VS2010ソリューションで文書化されていないコードメンバーを見つける
- 11. WSO2 Identity Server 5.1.0文書化されていないデータベースWSO2METRICS_DBおよびjpadb
- 12. 文書化されていないpathlib.Path.absolute()メソッドを使用できますか?
- 13. Angularの文書化されていない機能は何ですか?
- 14. 文書化されていないWindows組み込みのPDFレンダラ機能?
- 15. emberバインディングが文書化されているように動作しない
- 16. 文書化されていないJava Eclipseプロジェクトをマッピングするためのアドバイス
- 17. Axis2 Java - 要求で直列化されていないADB配列メンバー
- 18. NSXMLはどこに文書化されていますか?
- 19. Angular Response.json()が文書化されていません
- 20. createEnvelopeFromDocument()はどこに文書化されていますか?
- 21. Time.advanceはどこに文書化されていますか?
- 22. Rsyncプロトコルはどこに文書化されていますか?
- 23. sun.misc.Unsafeはどこに文書化されていますか?
- 24. DataFrame.indexはどこに文書化されていますか?
- 25. AndroidのJavaScript環境は文書化されていますか?
- 26. `*`はテンソルフローで文書化されていますか?
- 27. kSecAttrTokenIDSecureEnclaveはどこに文書化されていますか?
- 28. 文書化された検索パスからDLLがロードされない
- 29. 可能なVisualStates for Windows 8 Metroコントロールは文書化されていますか?
- 30. HTML5は十分に開発され、文書化されていますか?