Студопедия

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

Разделы сайта

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






Кластарды хабарлау






Жаң адан қ ұ рылатын кез келген класс тө мендегідей қ ызметші сө здермен анық талатын секциялардан тұ рады: Private (жабылғ ан), protected (қ орғ алғ ан), public (мү мкін) жә не automated (автоматтандырылғ ан). Ә рбір секцияның ішінде басында ө ріс, одан кейін ә дістер мен қ асиеттер анық талады.

Секциялар класы сипаттау элементтерінің кө рінетін бө лінгін анық тайды. Public секциясы ондағ ы кө рсетілген ө рістердің кө ріну бө лігіне шектеулер жасамайды, ә дістер мен қ асиеттерді кез келген басқ а программа модулінде шақ ыруғ а болады. Published секциясы кө ріну бө лігін шектемейді, бірақ мұ нда тек орындалу кезең інде ғ ана мү мкін болатын қ асиеттер ғ ана емес, программа қ ұ ру кезең індегі қ асиеттер жащылады (яғ ни объектілір инспекторы терезесінде).

Published секциясы тек стандартты мес компоненттерді жасауда пайдаланылады. Delphi ортасы формағ а орнатылғ ан компоненттерді сипаттауды арнайы аты жоқ секцияғ аорналастырады, ол класс тақ ырыбынан кейін жазылады да, бірінші хабарланғ ан секцияғ а дейін жалғ асады. Бұ л секция Published деп аталады.

Private секциясы кө ріну бө лінген ең тө менгі дең гейде дейін кішірейтеді: жабық элементтердің сипатталуы осы кластың ішіндегі, яғ ни класс сипатталғ ан модульде орналасқ ан ә діс пен қ осалқ ы программағ а ғ ана пайдаланылады. Protected секциясы тек сол кластың ә дістері ү шін, сондай-ақ, кез келген оның ұ рпақ тары ү шін пайдаланылады, бірақ оның орналасуына тә уелсіз.

Private секциясында хабарланғ ан элмент, егер ол басқ а модульде орналасқ ан болса, тіпті кластың жақ ын ұ рпақ тары ү шін де пайдаланылмайды. Automated секциясы OLEін автоматтандыру интерфейсінде қ осылатын қ асиеттер мен ә дістерді хабарлау ү шін пайдаланылады; бұ л секцияның мү шелерінің кө ріну бө лігі шектелмеген.

Object Pascal де кез келген секцияны бірнеше рет, яғ ни қ ажетіне қ арай хабарлай беруге болады, секцияларды пайдаоанушы қ алауынша орналастыруына болады. Кез келген секция бос болуы мү мкін. Келесі программа фрагменті секциялардың экрандағ ы кө ріну бө лігін сипаттайды.

Unit Unit1;

Interface

Uses Controls, Forms;

Type

TForm1=class(TForm)

Button1: TButton;

Private

FintField: integer;

Procedure SetValue(Value: Integer);

Function GetValue: Integer;

Published

Property IntField: read GetValue write SetValue

Protected

Procedure Proc1;

Public

Procedure Proc2;

End;

Var

Form1: TForm1;

Implementation

Procedure TForm1. Proc1;

Button1.Color: =clBtnFace;

FIntField: =0;

IntField: =0;

Proc1;

Proc2;

End;

Begin

Form1.Button1.Color: =clBtnFace;

Form1. FLintField: =0;

Form1. IntField: =0;

Form1.Proc1; //Бұ л жазу қ ате!

Form1.Proc2;

End;

Unit Unit1;

Interface

Uses Controls, Unit1;

Type

TForm2=class(TForm1)

Button2: TButton;

Procedure Button2

Procedure Button2Click(Sender: TObject);

End;

Var

Form2: TForm2;

Procedure Tform2.Button2Click(Sender: TObject);

Begin

Button1, Color: =clBthFace;

FintField: =0; // Бұ л жазу қ ате!

Proc1;

Proc2;

End;

Begin

Form1.Button1.Color: =clBthFace;

Form1.FintField: =0; // Бұ л жазу қ ате!

Form1.IntField: =0;

Form1.Proc1; //Бұ л жазу қ ате!

Form1.Proc2;

End;

Класс — ұ рпақ ты хабарлауда класс элементтерін бір кө ріну бө лігінен басқ а бө лігіне алмасиыруғ а болады. Алдың ғ ы мысал ү шін тө мендегідей хабарлауды жазуғ а болады:

Type

Tform2=class(TForm2)

...

Public

Procedure Proc1;

...

end;

 

Осындай хабарлаудан кейін Unit2 модулін былай шақ ыруғ а болады:

Form2.Proc1;

Private секциясына алмастыру жасағ аннан кейін хабарлау элементі ұ рпақ тарына кө рінбейді (егер ұ рпақ басқ а модульде хабарланғ ан болса), онда кейін оны басқ а секцияғ а орналастыруғ а болмайды.

Класс модульдің тек интерфейстік бө лігінде немесе жү зеге асырудың бастапқ ы кезең інде хабарланады. Класты қ осалқ ы программаның сипаттау бө лігінде анық тауғ а болмайды.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.