Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Free Pascal, Pascal ABC и другие _ Property

Автор: volvo 6.02.2006 2:07

Доброго времени суток всем smile.gif

Есть вот такая проблемка: написан класс, работающий с вектором (я приведу его сильно упрощенный вариант):

Type
TVector = Object
Private
T: Record
Case Boolean Of
False: (vec: Array[0 .. 2] Of Double);
True : (X, Y, Z: Double);
End;

Function GetArr(index: Integer): Double;
Procedure SetArr(index: Integer; v: Double);

Public
Constructor Create(x, y, z: Double); // Хотя это, в принципе, неважно...

Property Items[index: Integer]: Double Read GetArr Write SetArr; Default;
End;

Function TVector.GetArr(index: Integer): Double;
Begin result := T.vec[index] End;
Procedure TVector.SetArr(index: Integer; v: Double);
Begin T.vec[index] := v End;


Вроде все правильно, но не работает sad.gif
Чего хочется добиться? Чтобы можно было обращаться к элементам вектора через массив (НЕ через X, Y, Z) вот так:
Var
V: TVector;
Begin
V[0] := 12.3; // Аналогично V.T.vec[0];
V[1] := 34.5; // Аналогично V.T.vec[1];
...
End.

Если у кого-то есть какие-то предположения, You Are Welcome rolleyes.gif

Автор: volvo 6.02.2006 3:38

Все, спасибо, вопрос снят...

FPC позволяет устанавливать Default Property для Class-ов, а у меня был Object ...