ВУЗ:
Составители:
Рубрика:
123
В  данном  примере  доступ  к  значению  свойства 
SomeColor 
осуществляется через вызовы методов GetColor и SetColor.  
Однако  в  обращении  к  этим  методам  в  явном  виде  нет  необхо-
димости:  достаточно  написать,  например: 
AnObject. SomeColor := 
SomeValue; 
SomeVariable := AnObject. SomeColor;
  и  компилятор  самостоя-
тельно  оттранслирует  обращение  к  свойству 
SomeColor  в  вызовы 
методов 
GetColor или SetColor. 
В  методах,  входящих  в  состав  свойств,  может  осуществляться 
проверка  устанавливаемой  величины  на  попадание  в  допустимый 
диапазон значений и вызов других процедур, зависящих от вносимых 
изменений.  
Если в описании свойства отсутствует write – то, значит, свойство 
доступно  только  для  чтения!  Аналогично  можно  сконструировать 
свойство только для записи. 
Пример векторного свойства: 
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; 
   В данном примере доступ к значению свойства SomeColor
осуществляется через вызовы методов GetColor и SetColor.
   Однако в обращении к этим методам в явном виде нет необхо-
димости: достаточно написать, например: AnObject. SomeColor :=
SomeValue;
   SomeVariable := AnObject. SomeColor; и компилятор самостоя-
тельно оттранслирует обращение к свойству SomeColor в вызовы
методов GetColor или SetColor.
   В методах, входящих в состав свойств, может осуществляться
проверка устанавливаемой величины на попадание в допустимый
диапазон значений и вызов других процедур, зависящих от вносимых
изменений.
   Если в описании свойства отсутствует write – то, значит, свойство
доступно только для чтения! Аналогично можно сконструировать
свойство только для записи.
   Пример векторного свойства:
   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;
                                123
Страницы
- « первая
- ‹ предыдущая
- …
- 122
- 123
- 124
- 125
- 126
- …
- следующая ›
- последняя »
