System.TypInfo.TPropInfo (en az D-XE3 olarak) iki fonksiyonu üyeleri vardır. Ne için kullanıyorlar ve nasıl kullanılabilirler? (Bu bir soru olarak kabul edilir.)Undocumented üye
5
A
cevap
2
NameFld işlevi, bir özelliğin adını TTypeInfoFieldAccessor
olarak döndürür.
Bu aşağıdakileri yapmanızı sağlar: içten bir shortstring bir özelliğinin
MyPropertyName:= MyPropInfo.NameFld.ToString;
if (PropInfoA.NameFld = PropInfoB.NameFld) then begin
writeln('property names are the same');
end;
TTypeInfoFieldAccessor saklar ad.
NextGen derleyici kısa dizeleri desteklemediğinden, PByte
tipi kullanılır.
Tail
giriş
İşte kuyruk için kaynak kodu. shortstrings sonlandırılır boş değerle Çünkü döngünün tür "null karakteri bulunana kadar döngü"
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;
, basit yapamaz. Bu nedenle, başlangıçtan kuyruğa bir döngü, kısa ipliği normal bir dizgeye aktarmak için kullanılabilir.
Gerçek RTL kaynak kodunda garip bir şekilde, uzunluk baytı tail
işlevi yerine her yerde kullanılır; Yani artık bir kalıntı gibi görünüyor.
size
işlevini dahil etmek ve tail
'u sökmek daha mantıklı olurdu.