Студопедия

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

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

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






Объекттерді құру және оларды пайдалану






Turbo-Vision қ абық шасы. тә сіл программаларды жетілдіру барысында ары-қ арай пайдалану ү шін объектілік орталарды, объектілердің библиотекаларын қ ұ руғ а мү мкіндік береді. Ә сіресе кең танымалдылық қ а стандартты болып қ алғ ан бірың ғ ай стильде программалардың интерфейстерін жетілдіруге арналғ ан объектілі қ абық шалар кең танымалдылық қ а ие болды. Turbo-Vision (TV)- Паскаль ортасында программалардың аяқ талғ ан интерфейстерін қ ұ руғ а арналғ ан қ абық ша. Объектке-бағ ытталғ ан TV библиотекасы қ амтиды:

· ө лшемдері ө згеріп тұ ратын кө п есе қ иылысатын терезелер;

· жайылатын мә зір;

· мауысты сү йемелдеу;

· тү сті орнату;

· кнопкалар, скроллинг жолақ тары, шығ ару терезелері, тә уелді жә не тә уелсіз кнопкалар;

· клавиштер мен мауыс басылуын стандартты ө ндеу жә не кө птеген басқ алар.

TV арқ ылы қ ұ рылатын, стандартты тү рде ө нделген интерфейстің жоғ арғ ы жағ ында мә зір қ атары, ал астында статус жолы бар. Статус жолында пайда болатын мә тін ә детте программаның ағ ымдағ ы қ алып-кү йі туралы хабарламаларды шығ арып, қ ол жетерлік ыстық клавиштерді немесе ағ ымдағ ы моментте тұ тынушығ а қ ол жетерлік бұ йрық тар ү шін подсказкаларды кө рсетеді.

Программа тұ тынушымен ә детте бір немесе бірнеше сұ хбаттасу терезелері арқ ылы ө зара ә рекеттеседі, ол терезелер мауыс немесе клавиатураның бұ йрық тарына сә йкес экранның панелінде пайда болады немесе жойылады.

Turbo-Vision –дағ ы ең қ арапайым программа келесі амалдарды орындайды:

· экран панелін жартылай кө ленкелінген шаблонбен толтырады;

· экран бетіне мә зір жолағ ын (жоғ арыда) жә не статус жолын (астында) шығ арады;

· клавишалар жә не мауыс арқ ылы туындылағ ан оқ иғ аларды ө ндеушіні орнатады;

· объекттің мә зірін қ ұ рып оны мә зір жолағ ымен байланыстырады;

· сұ хбаттасу терезесін қ ұ рады;

· сұ хбаттасу терезесін мә зір байланыстырады;

· тұ тынушының клавишалар немесе мауыс арқ ылы беертін амалдарын кү теді.

Кез келген программаның ең басты объектісі TApplication объекті болып табылады – ол объекттің абстрактілі типі. Ол ешнә рсе істемейді, ал программалық кодты қ амтитын TApplication-дан туындылағ ан типтерді қ ұ ру ү шін пайдаланылады. Мысалы, Turbo-Vision ү шін стандартты тү рде HELLO, WORLD! жазуын шығ аратын HELLO.PAS қ арапайым программада THelloApp объекттің туындылағ ан типі анық талады:

PHelloApp = ^THelloApp;

THelloApp = object(TApplication)

procedure GreetingBox;

procedure HadleEvcnt(var Event: TEvent); virtual;

procedure InitMenuBar; virtual;

procedure InitStatusLine; virtual;

end;

Бұ л жерде кө рсетілгендей, анық талатын объекттің ә р типіне нұ сқ ағ ыштың типін анық тағ ан пайдалы, себебі, объектілерге қ олданылатын жұ мыстын ү лкен бө лігі нұ сқ ағ ыштар арқ ылы орындалады. Полиморфизм, негізінде, нұ сқ ағ ыштар арқ ылы жұ мыс жасайды. THelloApp оның ішіндегі тө рт ә діске қ арағ анда кө бірек нә рсені қ амтиды, туындылағ ан объект ө зінің тегіген барлық нә рсеге мұ ра етіп алады. THelloApp анық талуында жаң а объект оның TApplication тегінен айырмашылығ ы неде екендігі анық талады. Қ айта анық талмайтын барлық нә рсе ө згеріссіз тү рде Tapplication-дан мұ ра етіп алынады. THelloApp-да анық талғ ан тө рт ә діс қ осымшаны аяқ тайды:

· HadleEvent кейбір оқ иғ алардың орын алғ андығ ын (кө рсетіп) жә не осы оқ иғ аларғ а басқ а қ олданбалы функциялары қ алай жауап қ айтаруы тиіс екендігін анық тайды; Tapplication -да анық талғ ан HadleEvent ә дісі кез келген программаның ішінде пайда болатын ортақ оқ иғ алармен жұ мыс жасайды, бырақ, программа ү шін ерекше болатын оқ иғ аларды ө ндеуді қ амтамасыщ ету керек;

· InitMcnuBar программаның Мә зір жолағ ы ү шін мә зірді орнатады (TApplication мә зірлердің ө здерін емес Мә зір жолағ ын ғ ана қ амтиды);

· InitStatusLine экранның тө менгі жағ ындағ ы статус жолының мә нін орнатады; бұ л мә тін ә детте қ ол жетерлік ыстық клавиштерді кө рсетіп немесе тұ тынушығ а кейбір амалдар туралы ескерту жасап, программаның ағ ымдағ ы қ алып-кү йі туралы хабарламаны бейнелейді;

· GreetingBox мә зірдің Greeting элементіне жауап беру ретінде сұ хбаттасу терезесін шақ ырады; GreetingBox Greeting мә зірдің элементін таң дау арқ ылы айырылып-қ осылатын оқ иғ ағ а жауап қ айтару ретінде HadleEvent ә дісінен шақ ырылады; кү рделілеу программаларда бастапқ ы мә зірде анық талғ ан мә зірдің ә р элементіне жауап қ айтару ретінде тү рлі ә дістерді пайдалануғ а болады.

Абстракциялаудың жоғ арғ ы дең гейінде TV басты программасыынң тү рі Hello-ғ а ұ қ сас жә не ү ш ә дісті қ амтиды:

var

HelloWorld: THelloApp;

begin

HelloWorld.Init;

HelloWorld.Run;

HelloWorld.Done;

end;

Бұ л ә дістердің ә рқ айсысын қ ысқ аша тү сіндіру керек.

Init - бұ л конструкторды қ ажетті шақ ыру. Виртуалды ә дістерді қ амтитын барлық объекттер осы объекттің кез келген басқ а ә дістерін шақ ырудан бұ рын (олардың конструкторын шақ ыру арқ ылы) қ ұ рылуы тиіс. TV-ның барлық конструкторлары Init атауғ а ие. Бұ л ың ғ айлы келісім.

HelloWorld.Init басты программаның объекттерін пайдалану ү шін орнатады. Ол экранды тазалайды, маң ызды айнымалылар ү шін кейбір мә ндерін орнатады, экран панелін толтырады жә не статус жолы мен мә зір жолағ ын шығ арады. Ол кө птеген басқ а объекттердің конструкторларын шақ ырады, олардың кейбіреулері ешқ асан кө рінбейді, себебі олар ішінен шақ ырылады.

TV-да программаның бү кіл жұ мысы дерлік басты Run программаның ә дісінің ішінде орындалады. Run ә дістің анық талынуы бұ л жерде жоқ, себебі Run аналық TApplication объекттен мұ ра етіліп алынады.

Бұ л ә діс негізінде псевдокодта кө рсетілген repeat...until циклынан тұ рады.

Repeat < оқ иғ аны алу>; < оқ иғ аны ө ндеу>; until Quit;

Бұ л дә л код емес, ал Run-ды жү зеге асырудың жалпы схемасы. Маң ызында TV программасы циклденіп екі есепті шешеді: оқ иғ аны алу (мұ ндағ ы оқ иғ а, маң ызында, «бір нә рсені орындау») жә не осы оқ иғ аны ө ндеуді. Оқ иғ алардың біреуі шығ у командасының бір тү ріне есептеледі де цикл аяқ талады.

Дестрактор Done ол программы барлық объекттерін жояды – мә зір жолағ ын, статус жолын жә не экран панелін – жә не қ ателерді ө ндеушісі мен TV драйверлерін жояды. Done ә дісі Init конструкторы арқ ылы орындалғ ан барлық амалдарды жойып, одан кейін барлық стандартты элементтерді ө ндейтін TAppHcation.Done -ны шақ ыруы тиіс. TV-ны пайдалану арқ ылы объектке-бағ ытталғ ан программалау объекттер иерархиясын жә не олардың ә дістерінің спецификацияларын жақ сы білуді талап етеді. Паскальғ а арналғ ан объектке-бағ ытталғ ан TV қ абық шасымен қ атар C++ тілі ү шін дамығ ан ұ қ сама жү йе бар. Объектке-бағ ытталғ ан программалау Windows жү йесі интерфейсінің негізіне айналды. Visual Basic, Delphi сияқ ты қ азіргі объектке-бағ ытталғ ан жү йелер программалау механизмдерін жасырып, дисплей экранындағ ы кө рнекілік жобалау қ ұ ралдарын ғ ана пайдаланып, мү лдем кодтау командаларын қ олданбай программа-қ осымшалардың интерфейстерін жетілдіруге мү мкіндік береді.






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