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;
Điều gì đang xảy ra ở đây? Một mảng tĩnh đưa ra lỗi, "thuộc tính được xuất bản 'staticArray' không thể là kiểu ARRAY" nhưng mảng động chỉ là tốt? Tôi bối rối. Bất cứ ai biết lý do đằng sau này, và làm thế nào tôi có thể làm việc xung quanh nó? (Và không, tôi không muốn redeclare tất cả các mảng tĩnh của tôi như năng động. Họ là kích thước mà họ đang có lý do.)Tại sao một số mảng có thể được xuất bản chứ không phải các mảng khác?
Chỉ một độ chính xác: không thể sử dụng bản ghi làm thuộc tính đã xuất bản. Hoặc trên thực tế, nó được cho phép, nhưng không có RTTI gắn liền với lĩnh vực này. Vì vậy, nó sẽ là vô dụng để thêm một bản ghi trong một phần được xuất bản của tài sản. Trong khi một mảng động được phép và được xử lý trong RTTI. –