Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Private. FCoordinates: array[0..3] of Longint;





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;

Index спецификаторы бар қасиетте қатынау әдісі бүтін типті қосымша параметрді алуы керек. Оқу функциясы үшін ол жалғыз параметр, жазба процедурасы үшін ол соңғы параметрдің алдындағы (қасиеттің мәнін анықтайтын алдыңғы параметрге сай) параметр болуы керек. Бағдарлама қасиетке қатынағанда, бүтін санды тұрақты шама қасиет автоматты түрде қатынау әдісіне беріледі.

Егер Rectangle TRectangle типті болса, жоғарыда жарияланғандай, онда

Rectangle.Right:= Rectangle.Left + 10;

мынадай сәйкестік орын алады:

Rectangle.SetCoordinate(2, Rectangle.GetCoordinate(0) + 100);

Қасиеттердің барлық жариялануында read және write спецификаторларының біреуі немесе екеуін бірақ болуы қажет. Олар қатынас спецификаторы деп аталады және келесі формада жазылады:

read fieldOrMethod

write fieldOrMethod

мұндағы fieldOrMethod – қасиет жарияланған класта немесе арғы – тек класында жарияланған өріс немесе әдістің аты.

Егер fieldOrMethod қасиет жарияланған класта жарияланса, ол қасиетті жарияламас бұрын орындалуы қажет.

Егер fieldOrMethod арғы – тек класында жарияланса, онда ол ұрпақта көрінуі тиіс, яғни басқа модульде жарияланған жеке өріс немесе ұрпақ кластың әдісі болмауы тиіс.

Егер fieldOrMethod - өріс болса, онда ол қасиеттің типінен тұруы керек.

Если fieldOrMethod - әдіс болса, онда оны қайта анықтауға болмайды.

Если fieldOrMethod - read спецификаторында анықталған әдіс болса, онда ол қасиеттің типіне сай келетін мәнді қайтаратын параметрі жоқ функция болуы керек. Оқуға арналған функцияның аты соңынан қасиеттің аты жазылатын Get приставкасынанбасталады.

Егер fieldOrMethod - write спецификаторында анықталған әдіс болса, онда ол бір ғана параметрден тұратын процедура болуы тиіс. Бұл параметрдің типі қасиеттің типіне сай келуі тиіс. Жазуға тағайындалған процедураның аты соңынан қасиеттің аты жазылатын Set приставкасынан басталады.

Мысалы, егер қасиет жарияланған болса:

property Color: TColor read GetColor write SetColor;

онда GetColor әдісі мыналай сипатталуы қажет

function GetColor: TColor;

және SetColor әдісі мыналай сипатталуы

procedure SetColor(Value: TColor);

немесе

procedure SetColor(const Value: TColor);

сипатталынуы керек.

Егер қасиет тек read спецификатрынан тұратын болса, онда ол "read only" (тек оқуға ғана) атрибутынан тұрады. Егер қасиет тек write спецификатрынан тұратын болса, онда ол "write only" (тек жазуға ғана) атрибутынан тұрады. Қасиеттің мәніне тек оқуға ғана тағайындалған мәнді меншіктеу немесе қасиеттің өрнегінде тек жазуға ғана арналған мәнді қолдану компиляция уақытының қатесін шақырады. Жазудан қорғалған қасиетке мәнді объектіні инициализациялау кезінде орнатуға болады.

Мысал 2.6.3 Name және Address екі қасиеттерден тұратынName және Address TPerson класын сипаттау.

Type

TName = string [15];

TAddress = string [35];

TPerson = class // класты жариялау

Date: 2015-07-01; view: 732; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию