vložil Radek Červinka
10. srpna 2013 09:37
Přiznám se, že následující část možnosti property mi nebyla známou a nejsem si jist zda to není nějaká novinka. Jde o to, že kromě property typu pole, což je snad všeobecně známo a používáno, lze dodefinovat další property, které index do pole mají jako konstantu a jsou tak něco jako zkratka pro určité prvky pole. Z příkladu to bude jasnější:
1type
2 TRectangle = class
3 private
4 FCoordinates: array[0..3] of Longint;
5 function GetCoordinate(Index: Integer): Longint;
6 procedure SetCoordinate(Index: Integer; Value: Longint);
7 public
8 property Left: Longint index 0 read GetCoordinate
9 write SetCoordinate;
10 property Top: Longint index 1 read GetCoordinate
11 write SetCoordinate;
12 property Right: Longint index 2 read GetCoordinate
13 write SetCoordinate;
14 property Bottom: Longint index 3 read GetCoordinate
15 write SetCoordinate;
16 property Coordinates[Index: Integer]: Longint
17 read GetCoordinate
18 write SetCoordinate;
19 …
20 end;
Property Coordinates je klasická old-school property pole, která používá GetCoordinate a SetCoordinate pro vrácení prvku pole, ale všimněte si Left, Top, Right a Bottom. Tyto ukazují který index z pole představuje položku. Nevím, odkdy toto Delphi podporuje, ale je to podle mne šikovné.