type
TStaticArray = array[1..10] of integer;
TDynamicArray = array of integer;
TMyClass = class(TObject)
private
FStaticArray: TStaticArray;
FDynamicArray: TDynamicArray;
published
property staticArray: TStaticArray read FStaticArray write FStaticArray; //compiler chokes on this
property dynamicArray: TDynamicArray read FDynamicArray write FDynamicArray; //compiler accepts this one just fine
end;
Co tu się dzieje? Statyczna tablica podaje błąd, "opublikowana właściwość" staticArray "nie może być typu ARRAY", ale dynamiczne tablice są w porządku? Jestem zmieszany. Ktoś wie, jakie są tego powody i jak mogę je obejść? (Nie, nie chcę redeclare wszystkie moje statyczne tablice jako dynamiczne.Jest to rozmiar, który są z jakiegoś powodu.)Dlaczego niektóre tablice mogą być publikowane, ale inne nie?
Tylko jedna dokładność: rekordu nie można wykorzystać jako opublikowanej nieruchomości. Lub w rzeczywistości jest to dozwolone, ale nie ma powiązanego z nim RTTI. Dlatego dodanie rekordu do opublikowanej sekcji właściwości będzie bezużyteczne. Podczas gdy tablica dynamiczna jest dozwolona i obsługiwana w ramach RTTI. –