Есть массив FItems:array of integer;
хочу создать от него property Items, так чтобы можно было записывать Items[Index]:=x и читать x:=Items[Index].
Какого типа должен быть Items? Какова тогда должна быть сигнатура методов read и write?
property от массива
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Посмотри исходники TList, там это очень наглядно реализовано.
Код: Выделить всё
type
class TSome(...)
private
FItems: array of Integer;
function GetItems(Index: Integer): Integer;
procedure SetItems(Index: Integer; Value: Integer);
public
property Items[Index: Integer]: Integer read GetItems write SetItems;
end;
implementation
function TSome.GetItems(Index: Integer);
begin
Result := FItems[Index];
end;
procedure TSome.SetItems(Index: Integer; Value: Integer);
begin
FItems[Index] := Value;
end;
С уважением, Lost Angel...
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
LAngel, а увеличить массив в SetItems в случае необходимости? 

Игорь Акопян, ну тогда так

Код: Выделить всё
if (index > VarArrayHighBound(FItems, 1)) or
(index < VarArrayLowBound(FItems, 1)) then
Raise(Exception.Create('Индекс выходит за границы массива'))
else FItems[index] := Value;
С уважением, Lost Angel...