Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Кластарды хабарлау
Жаң адан қ ұ рылатын кез келген класс тө мендегідей қ ызметші сө здермен анық талатын секциялардан тұ рады: 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 секциясына алмастыру жасағ аннан кейін хабарлау элементі ұ рпақ тарына кө рінбейді (егер ұ рпақ басқ а модульде хабарланғ ан болса), онда кейін оны басқ а секцияғ а орналастыруғ а болмайды. Класс модульдің тек интерфейстік бө лігінде немесе жү зеге асырудың бастапқ ы кезең інде хабарланады. Класты қ осалқ ы программаның сипаттау бө лігінде анық тауғ а болмайды.
|