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


Полезное:

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


Категории:

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






Published





... { жариялану мына жерде}

end;

Секциялар кластың құрамына кіретін элементтердің көріну аймағын анықтайды:

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

· Public – класс жарияланған uses тізімінде модульге сілтемеден тұратын ағымды және кез – келген бағдарламаның модулінде көрінетін элементтер жиынынан тұрады.

· Published – ол Public сияқты, бірақ айырмашылығы тек мынада, published секциясы құрауыштарды жариялауда қолдану үшін арнайы даярланған. Бұл секцияға орналастырылған қасиеттер тек бағдарламаның орындалу барысында ғана емес сонымен қатар көрнекілік конструкциялау кезінде Объект Инспекторының терезесінде де оған қатынауға болады. Сондықтан published секциясында жарияланған өрістер класс типтес болуы керек. Пішін (мысалы, TForm1) класының жариялануының басында орналасқан аты жоқ секция, үнсіздікпен published секциясы болып табылады.

· Protected – кластың және оның кез – келген ұрпақ кластарының әдістеріне ғана қатысты элементтерден тұрады және олар сол модульде орналасты ма? жоқ па? одан тәуелсіз. Әдетте protected класына кластың әдісінің сипаттамасын орналастырады.

· Automated – OLE-объект Автоматизацисы интерфейсіне қосылатын қасиеттер мен әдістерді жариялауға қолданылады. Бұл секцияның мүшелерінің көріну аймағы шектелмеген.

· Бір кластың төңірегінде ретсіз кез – келген секция құрылуы мүмкін. Секциялардың орналасу тәртібі де әртүрлі болуы мүмкін. Сонымен қатар кез – келген секция бос болуы мүмкін.

2.8 Кластарға операциялар қолдану. IS және AS кілттік сөздері

Кластарға екі операция қолдануға рұқсат етілген – IS және AS операциялары.

1. IS операторы.

IS операторының көмегімен берілген класс нұсқалған типке тиісті ме соны анықтауға болады. IS операторынан тұратын өрнектің синтаксисінің түрі мынандай болады:

object is class

Бұл өрнек логикалық типтен (boolean) тұрады, егер object айнымалысы class класының объектісі немесе кластардың біреуінің объектісі болса, онда TRUE мәнін қайтарады, әйтпесе – FALSE.

 

Мысал 2.8.1

IF ActiveControl IS TEdit THEN...

IS операторы бульдік мәнді қайтарады.

TRUE – егер тексерілетін айнымалы ActiveControl берілген типке қатысты болса (TEdit). Сонымен қатар нұсқалған тип тексерілетін айнымалының арғы – тегі болып табылса (яғни ActiveControl TEdit класының немесе одан туындаған бір кластың объектісі болса).

FALSE – кері жағдайда.

Мысал 2.8.2

IF ActiveControl IS TObject THEN DoSomeThing;

Барлық кластар TObject класының ұрпақ кластары болғандықтан, DoSomeThing процедурасы кез – келген жағдайда орындалады.

2. AS операторы.

AS опрераторы нұсқағышты нақты типке келтіру үшін қолданылады. AS операторынан тұратын өрнектің синтаксисінің түрі мынандай болады:

object as class

Бұл өрнектің есетелінуінің нәтижесі болып class класының типіне немесе class класының ұрпақ – класының типіне сай келетін объектіге сілтеме табылады. Бағдарламаның орындалу барысында object class класы типті немесе class класының ұрпақ – класының типті немесе nil типті болуы мүмкін. Үйлеспеген типке келтіру ерекше жағдайдың өрбуіне әкеп соғады.

Мысал 2.8.3

WITH ActiveControl AS TEdit DO DoSomeThing;

Келтірілген фрагментте ActiveControl айнымалысы қандай да бір класқа нұсқағыш болуы мүмкін. AS операторының көмегімен бұл нұсқағыш TEdit – тегі нұсқағышқа түрленеді. Егер ActiveControl айнымалысы TEdit типінің (немесе оның бір ұрпақ кластарының) объектісі болып табылмайтыны анықталса, онда типтің келтірілуі орындалмайды және DoSomeThing әдісі шақырылмайды. Кері жағдайда типтердің келтірілуі орындалады және DoSomeThing әдісі шақырылады.

Мысал 2.8.4

with Sender as TButton do // егер Sender TButton типтен тұрса

begin // немесе TButton – нан ұрпақ -тип

Caption:= '&Ok';

OnClick:= OkClick;

end;

...

(Sender as TButton).Caption:= '&Ok'; // TButton немесе оның ұрпақтары типтес

// Sender айнымалысының Caption қасиетіне '&Ok' мәні меншіктеледі

2.9 Оқиға және меншіктеу

Windows жүйесінде бұрыннан жұмыс істеп келе жатқан программистке "оқиға" терминінің мағынасын ұқтырудың қажеті жоқ шығар. Осы орта мен ол үшін жазылған бағдарламаның барлығы қолданушы, компьютер аппаратурасы немесе басқа бағдарламаның әсерінің нәтижесінде өрбитін оқиға арқылы басқарылады. Оқиғаның басталуы туралы хабар – ол терезе функцияларының көмегімен алынған Windows жүйесінің хабарламалары.

Қолда анықтамалық бола тұра, мұндай санды хабарламалармен жұмыс істеу оңайға түспейді. Сондықтан Delphi – дің артықшылықтарының бірі болып программистің Windows хабарламаларымен жұмыс істеу қажеттілігінен арылғаны болып табылады (бірақ оның мұндай мүмкіншілігі бар; ол туралы келесі бөлімде айтамыз). Delphi – де типтік оқиғалардың саны екі ондықтан аспайды және олардың барлығы орта туралы терең білімді қажет етпейтін қарапайым интерпретациядан тұрады.

Object Pascal тілінің деңгейінде іске оқиғалар қалай іске асырылғанын қарастырайық.

Оқиға — бұл сырттан келген әсерлерге қолданушының реакциясын құруға тағайындалған процедуралық типтің қасиеті. Мұндай қасиеттің мәні болып қандай да бір әдіске нұсқағыш табылады.

Оқиғаны сипаттаудың синтаксисі мынадай:

property OnMyEvent: TMyEvent read FOnMyEvent
write FOnMyEvent;

мұндағы OnMyEvent – қасиет-оқиғаның аты, TMyEvent – оқиғаның процедуралық типі, FOnMyEvent — өріс, ол сәйкес келетін оқиғаны өңдейтін әдіске нұсқағышты сақтауға тағайындалған.

Мұндай қасиетке мән тағайындау дегеніміз - объектіге оқиға шақырылған кезде шақырылатын әдістің адресін нұсқау. Мұндай әдістер оқиғаны өңдеуіштер деп аталады. Мысалы, мына жазу:

Application.OnActivate:= MyActivatingMethod;

Application (осылай жұмыс істеп тұрған қосымшаға сай келетін объект аталады) объектісі активтелгенде MyActivatingMethod өңдеу - әдісі шақырылатынын білдіреді.

Кітапхананың ішінде Delphi – дің орындалу уақытында Windows хабарламаларын өңдейтін оқиғаны өңдеу шақыртулары әдістерде орналастырылады. Қажетті әрекеттерді орындағаннан кейін бұл әдіс өңдеушініңадресі белгіліме соны тексереді, ал егер ол белгілі болса, онда оны шақырады:

if Assigned(FOnMyEvent) then FOnMyEvent(Self);

Оқиға пайда болғанына және тағайындалуына байланысты параметрлерінің әртүрлі саны мен типінен тұрады. Барлығына жалпы болып Sender параметрі табылады, ол оқиғаның объект-көзіне нұсқайды. Ең қрапайым процедуралық тип — TNotifyEvent – оның екі параметрі болмайды:

TNotifyEvent = procedure (Sender: TObject) of object;

Мысал 2.9.1 Мысал ретінде TControl класының стандарты оқиғаларының OnDblClick (тышқанның сол жақ батармасына екі рет шерткенде өрбиді), OnMouseDown (тышқанның батырмасын басқанда өрбиді) және OnMouseMove (тышқанды жылжытқанда өрбиді) сипатталуын қарастырайық:

Type

TControl = class (TComponent)

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



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