Mit dem Index kann man mehrere Properties über ein und dieselbe Getter/Setter-Funktion lesen/schreiben.
Zitat von
Die Delphihilfe ©Borland:
Indexbezeichner
Mithilfe von Indexbezeichnern können mehrere Eigenschaften dieselbe Zugriffsmethode verwenden, auch wenn sie unterschiedliche Werte repräsentieren. Indexbezeichner bestehen aus der Direktive index und einem Integer-Wert zwischen -2.147.483.647 und 2.147.483.647. Bei Eigenschaften mit Indexbezeichnern muss auf die Direktiven read und write eine Methode (kein Feld) folgen. Zum Beispiel:
Delphi-Quellcode:
type
TRectangle = class
private
FCoordinates: array[0..3] of Longint;
function GetCoordinate(Index: Integer): Longint;
procedure SetCoordinate(Index: Integer; Value: Longint);
public
property Left: Longint index 0 read GetCoordinate write SetCoordinate;
property Top: Longint index 1 read GetCoordinate write SetCoordinate;
property Right: Longint index 2 read GetCoordinate write SetCoordinate;
property Bottom: Longint index 3 read GetCoordinate write SetCoordinate;
property Coordinates[Index: Integer]: Longint read GetCoordinate write SetCoordinate;
...
end;
Eine Zugriffsmethode für eine Eigenschaft mit einem Indexbezeichner benötigt einen zusätzlichen Wert-Parameter vom Typ Integer. Bei einer read-Funktion muss dies der letzte, bei einer write-Prozedur der vorletzte Parameter sein. Diese Konstante (der Index) wird beim Zugriff auf die Eigenschaft automatisch an die Zugriffsmethode übergeben.
Wenn Rectangle ein Objekt der zuvor deklarierten Klasse TRectangle ist, dann ist die Anweisung
Rectangle.Right := Rectangle.Left + 100;
mit der folgenden Anweisung identisch:
Rectangle.SetCoordinate(2, Rectangle.GetCoordinate(0) + 100);