когда напишешь так
Код:
property uchastok: tuchastok_array // и здесь
read fuchastok
write fuchastok;
то получишь огромные грабли в виде того, что писать uchastok можно будеть только целиком всем массивом.
То есть нужно либо оставить только свойство для чтения(при этом модифицировать элементы массива будет возможно), либо сделать более сложные телодвижения типа таких
Код:
tbalka=class
private
fuchastok: array of tuchastok;
fshema:tcanvas;
function GetUchastok(index:Integer):tuchastok;
procedure SetUchastok(index:Integer; value :tuchastok);
procedure setshema(value:tcanvas);
public
property uchastok [index:integer]: tuchastok
read GetUchastok
write SetUchastok;
property shema:tcanvas
write setshema;
end;
но опять же, модифицировать uchastok[i] можно будеть только целиком :
вот так
Код:
var
uchastok:tuchastok;
uchastok:=balka.uchastok[i];
uchastok.fdlina:=10;
balka.uchastok[i]:=uchastok;
а вто так
Код:
balka.uchastok[i].fdlina:=10;
уже будет нельзя.
То есть лучше оставить только свойство для чтения, повторяюсь, при этом модифицировать элементы массива будет возможно:
Код:
balka.uchastok[i].fdlina:=10;
Индексированное свойство нужно делать, когда элементы являются ссылочными типами, например классами.