ВУЗ:
Составители:
Рубрика:
13
MyDrawClass = class
private
w: integer;
procedure SetWidth(ww: integer);
public
procedure Draw;
property MyProp: integer read w write SetWidth;
end;
procedure MyDrawClass.SetWidth(ww: integer);
begin
if w<>ww then
begin
w:=ww;
Draw;
end;
end;
Применим полученные знания к классу DynArray. Заменим метод Size на
свойство Size, указав для доступа на чтение поле sz, а для доступа на запись –
метод Resize:
property Size: integer read sz write Resize;
Аналогично можно
определить свойство Capacity, представляющее емкость
массива:
property Capacity: integer read cap write Reserve;
1.4 Индексные свойства классов
Индексные свойства являются расширениями полей-массивов. Как и обыч-
ные свойства, они не связаны с конкретной областью памяти и через специальные
методы обеспечивают доступ к приватным полям на чтение и запись.
Описание индексного свойства имеет вид:
property ИмяСвойства[CписокОписанийИндексов]: ТипСвойства
read GetProp write SetProp;
Здесь CписокОписанийИндексов имеет ту же форму, что
и список формальных
параметров подпрограмм, методы GetProp и SetProp должны иметь следую-
щие заголовки:
function GetProp(CписокОписанийИндексов): ТипСвойства;
procedure SetProp(CписокОписанийИндексов; x: ТипСвойства);
Для класса DynArray создадим индексное свойство Items:
property Items[i: integer]: DataType
read GetItem write SetItem;
Страницы
- « первая
- ‹ предыдущая
- …
- 9
- 10
- 11
- 12
- 13
- …
- следующая ›
- последняя »