Облака / Clouds
    Go to Copy.com
    Copy.com
    The bast cloud service
    Get 20 GB free!!!
    Support WebDav.
    Show more >>

    Go to Dropbox.com
    Dropbox.com
    time-tested cloud storage
    Support WebDav.
Все бесплатно
    Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.



Вопросы
  Изменить структуру ABS (AbsoluteDB)
   Категория: Базы данных
  Перегенерировать все индексы Dbase
   Категория: Базы данных
  Что значит Paramstr
   Категория: Приложение
  Корректное колесико мыши
   Категория: Приложение
  Программно скрыть MainMenu
   Категория: Компоненты
  Округление в меньшую сторону
   Категория: Математика
  Определить МАС-адрес карты
   Категория: Интернет и Сети

Delphi - Справочник: Property

ABCDEFGHIJKLMNOPQRSTUVWXYZ

  << Вернуться  

 Property
1.Property Name : Type read Getter|nodefault;
2.Property Name : Type write Setter;
3.Property Name : Type read Getter write Setter;
4.Property Name : Type Index Constant read Getter {default : Constant|nodefault;} {stored : Boolean};
5.Property Name : Type Index Constant write Setter {default : Constant|nodefault;} {stored : Boolean};
6.Property Name : Type Index Constant read Getter write Setter {default : Constant|nodefault;} {stored : Boolean};
7.Property Name[Index : IndexType] : BaseType read Getter {default;}
8.Property Name[Index : IndexType] : BaseType write Setter; {default;}
9.Property Name[Index : IndexType] : BaseType read Getter write Setter; {default;}
10.Property Name : Type read Getter implements Interfaces...;
11.Property Name; // Повторно объявленное свойство базового класса
12.Property Name : Type; // Только Dispinterface
13.Property Name : Type readonly; // Только Dispinterface
14.Property Name : Type writeonly; // Только Dispinterface
Ключевое слово (Unit System)
Определяет управляемый доступ к полям класса
Описание:
Ключевое слово Property определяет управляемый доступ к полям класса.

Внутренняя организация объекта должна быть скрыта для внешней стороны, это объектно-ориентированного концепция. Пока вы позволяете полям (данным) в классе быть внешне непосредственно доступными (помещая в public или published разделы), это будет являться, по крайней мере, неблагоразумно. Вместо этого, Property может использоваться, чтобы определить, как данные читаются и написаны.

Версии 1, 2 и 3: Эти основные формы определяют доступ чтения, записи или чтения и записи для полей класса. Данные Type возвращают из поля или метода вызванного Получателем. Данные модифицируются через поле или метод Установщик.

Обратите внимание, что Вы должны использовать отличное название для Name от "Getter" и "Setter". Например: Property Age read fAge write fAge; Вы можете использовать имена полей, когда не требуется обработка поиска и проверки. При использовании метода чтения или записи, считанное или записанное значение могут быть намного более просты, чем сохраненное значение. Сохраненное значение может быть полностью различным.

Версии 4, 5 и 6: Использование ключевого слова Index говорит Delphi, чтобы он передал значение Constant как параметр методов Получателя и Установщика. Они должны быть функциями, которые получают это постоянное индексное значение как параметр.

Например: Property Item2 : string Index 2 read ItemGetter; где ItemGetter определен как: Function ItemGetter(Index : Integer) : string; Значение Default обеспечивает информацию для свойства во время выполнения. NoDefault - нет. Stored находится вне области основ Delphi.

Версии 7, 8 и 9: Это - обобщенная версия версий 4,5 и 6. Она просит пользователя указать индексное значение для методов Getter и Setter.

Default позволяет вызовам метода Getter и Setter быть замененными как в следующем примере: myValue := MyClass.Getter(23); может быть заменено : myValue := MyCLass[23];

Версия 10: Позволяет реализации Интерфейс(Interface) метода быть делегированной в свойство. Доступ к свойству, вызывает выполнение интерфейса.

Версия 11: Повторно объявляя свойство родительского класса, вы можете сделать так в public или published пункте, таким образом, поднимая права доступа свойства.

Версии 12, 13 и 14: уместны для dispinterfaces, которые находятся вне области основ Delphi.
Пример кода: Иллюстрирование основных и индексированных свойств

// Полный код Модуля. // ----------------------------------------------------------- // Вы должны поместить этот код в модуль с именем Unit1 и с формой // названную Form1, которая имеет событие OnCreate названное FormCreate. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type // Класс с Индексированными свойствами TRectangle = class private fArea : LongInt; fCoords : array[0..3] of Longint; function GetCoord(Index: Integer): Longint; procedure SetCoord(Index: Integer; Value: Longint); public Property Area : Longint read fArea; Property Left : Longint Index 0 read GetCoord write SetCoord; Property Top : Longint Index 1 read GetCoord write SetCoord; Property Right : Longint Index 2 read GetCoord write SetCoord; Property Bottom : Longint Index 3 read GetCoord write SetCoord; Property Coords[Index: Integer] : Longint read GetCoord write SetCoord; constructor Create; end; // Сам класс формы TForm1 = class(TForm) procedure FormCreate(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} // Свойство TRectangle подпрограмма 'Получатель' // Конструктор TRectangle constructor TRectangle.Create; begin // Задание координат прямоугольника по умолчанию left := 0; right := 100; top := 0; bottom := 100; fArea := 100 * 100; end; function TRectangle.GetCoord(Index: Integer): Longint; begin // Только разрешенные допустимые индексные значения if (Index >= 0) and (Index <= 3) then Result := fCoords[Index] else Result := -1; end; // Свойство TRectangle подпрограмма 'Установщик' procedure TRectangle.SetCoord(Index, Value: Integer); begin // Только разрешенные допустимые индексные значения if (Index >= 0) and (Index <= 3) then begin // Сохранений нового значения fCoords[Index] := Value; // И обновление площади прямоугольника fArea := (right - left) * (bottom - top); end; end; // Основная линия кода procedure TForm1.FormCreate(Sender: TObject); var myRect : TRectangle; i : Integer; begin // Создание моего маленького прямоугольника с заданными по умолчанию координатами myRect := TRectangle.Create; // И установка угловых координат myRect.Left := 22; // Левых используя прямой метод myRect.Top := 33; myRect.SetCoord(2,44); // Правых используя индексированный метод myRect.SetCoord(3,55); // И спрос этих значений for i:= 0 to 3 do ShowMessageFmt('myRect coord %d = %d',[i,myRect.GetCoord(i)]); // И показ площади прямоугольника ShowMessageFmt('площадь myRect= %d',[myRect.Area]); end; end.

Результат:
myRect coord 0 = 22
myRect coord 1 = 33
myRect coord 2 = 44
myRect coord 3 = 55
площадь myRect = 484

  << Вернуться