Дельфи ортасында тізімдермен жұмыс істейтін компоненттер



Кіріспе
1 Объектіге бағытталған тілдердің негізгі конпенциясы
1.1 Объектілі бағдарланған программалаудың негізгі принциптері
1.2 Конструкторлар, динамикалық нысандар және деструкторлар
2 Delphi ортасының компоненттер палитрасы. Формалар терезесі
Компоненттер палитрасы . Delphi ортасының ең басты байлығы болып
Қорытынды
Пайдаланылған әдебиеттер тізімі
Қазіргі коммерциялық бағдарламалық жүйелердің көбісі бірнеше жылдар бұрынғылардан гөрі әлде- қайда қиынырақ. Бұл қиындықтың өсуі жобалаудың методологиясы бойынша көп зерттеулер жасауға жол ашты. Бағдарламалаудың көркем тілдерін жасау бұл облыста жеткен жетістіктерін толықтырады. Компьютерге нұскау беретін(императивті тілдер) тілдерден гөрі мәселесі бар облыстардың кілттік абстракциясын сипаттайтын тілдерге(декларативті тілдер) көшу тенденциясы туды.
Тілдер – ОББ-ның негізгі құралдары болып табылады, осы тілдердің жасалуы қазіргі кезде ОБ әдісінің негізін құрайтын идеялардың тууына себеп болды. ОБ әдісі бағдарламаның тілдерімен ғана шектелмейді. Тілдер тек қолдануға болатын немесе қолдануға болмайтын құрал-жабдықтарды береді. ОББ талдауды, жобалауды, салуды және жүйені дамытуды ұйғарады.
Курстық жұмыстың мақсаты Дельфи ортасында тізімдермен жұмыс істейтін компоненттерге мысал келтіру. Курстық жұмыс кіріспеден, екі бөлімнен, қорытынды және пайдаланылған әдебиеттер тізімінен тұрады.
Бірінші бөлімде объектіге бағытталған тілдердің негізгі конпенциясы, объектіге бағытталған программалау негіздері туралы мәліметтер сипатталған.
Екінші бөлімде Delphi ортасы туралы теориялық деректер, объектіге бағытталған талдау мен жобалау негіздері және жадынын қолдану мысалдары сипатталған.
1. Атымтаева Л.Б. Объектіге бағытталған программалау негіздері. А: «Қазақ университеті», 2005
2. М.Қ.Байжұманов, Л.Қ. Жапсарбаева. Информатика. Астана-2004
3. Дәулетқұлов А.Б. «Жаңа информациялық технологиялар: информатикадан 30 сабақ», Алматы, 2003 жыл
4. Қамардинов О. «Информатика негіздері», Алматы, Рауан, 1998 ж.
5. Культин.Н.Б. Turbo Pascal в задачах и примерах.-СПБ.: БХВ‐Петербург, 2002.-256 б.
6. Тойкенов Ғ.Ш. Паскаль тілінде программалау ‐ Алматы:Дәнекер, 2001.-110 бет.
7. Культин Н.Б. Программирование В Турбо Паскаль 7.0. :БхВ-Санкт-Петербург, 1999.- 416 б.
8. С.И.Бобровский. – Delphi 7. Учебный курс. СПб.: Питер, 2005.-736 с.: ил.
9. Кулямин В. В. Технологии программирования. Компонентный подход [Текст] : учеб. пособие / В. В. Кулямин. - М. : Интернет-Университет Информ.Технологий : Бином. Лаб. знаний, 2007. - 463 с
10. .Байжұманов М.Қ., Жапсарбаева Л.Қ. Информатика: оқу құралы, Астана, 2004,232б.
11. Балапанов Е., Бөрібаев Б., Сейнасинов Б. Информатика терминдерінің түсіндірме сөздігі, А, 2000.
12. “Информатика”, электрондық оқулық/Абай атынд. АМУ информатика кафедрасы оқытушылары, А, 2004.
13. Медешова А.Б. “Бастауыш мектептегі информатика және ақпараттық технология негіздері”, электрондық оқу-әдістемелік кешен, Орал, БҚМУ,2005.
14. Савельев А.Я. Основы информатики: Учеб. Для вузов. – М.: Изд-во МГТУ им. Н.Э.Баумана, 2001 – 328 с., ил. (сер. Информатика в техническом университете)
15. Вирт Н. Алгоритмы и структуры данных: пер. с англ. – 2-е изд., испр.- СПб.: Невский Диалект, 2001. – 352 с.: ил.








Кіріспе
Қазіргі коммерциялық бағдарламалық жүйелердің көбісі бірнеше жылдар
бұрынғылардан гөрі әлде- қайда қиынырақ. Бұл қиындықтың өсуі жобалаудың
методологиясы бойынша көп зерттеулер жасауға жол ашты. Бағдарламалаудың
көркем тілдерін жасау бұл облыста жеткен жетістіктерін толықтырады.
Компьютерге нұскау беретін(императивті тілдер) тілдерден гөрі мәселесі
бар облыстардың кілттік абстракциясын сипаттайтын тілдерге(декларативті
тілдер) көшу тенденциясы туды.
Тілдер – ОББ-ның негізгі құралдары болып табылады, осы тілдердің
жасалуы қазіргі кезде ОБ әдісінің негізін құрайтын идеялардың тууына
себеп болды. ОБ әдісі бағдарламаның тілдерімен ғана шектелмейді. Тілдер
тек қолдануға болатын немесе қолдануға болмайтын құрал-жабдықтарды
береді. ОББ талдауды, жобалауды, салуды және жүйені дамытуды ұйғарады.
Курстық жұмыстың мақсаты Дельфи ортасында тізімдермен жұмыс істейтін
компоненттерге мысал келтіру. Курстық жұмыс кіріспеден, екі бөлімнен,
қорытынды және пайдаланылған әдебиеттер тізімінен тұрады.
Бірінші бөлімде объектіге бағытталған тілдердің негізгі конпенциясы,
объектіге бағытталған программалау негіздері туралы мәліметтер сипатталған.
Екінші бөлімде Delphi ортасы туралы теориялық деректер, объектіге
бағытталған талдау мен жобалау негіздері және жадынын қолдану мысалдары
сипатталған.

1 Объектіге бағытталған тілдердің негізгі конпенциясы
Объекті-бағытталған программалау тілдерінің негізгі концепциясы–
құрылатын қосымша өзара байланысқан негізгі объектілерден тұрады. Объекті-
бағытталған технологияда қолданушы үш базалық элементпен: объектілер, хабар
және класстармен жұмыс істейді. 
Объектілер дегеніміз бірнеше рет қолданылатын программалық модулдерден,
яғни байланысқан мәліметтер мен процедуралардан тұрады. Объект құрылымы екі
бөліктен тұрады: айнымалылар және әдістер. Әдістер объект функциясының
алгоритмін анықтайтын процедуралар мен функциялар жиынынан тұрады.
Объектілі айнымалылар жәй мәліметтерден (сан, массив, текст) және күрделі
құрылымды информациялардан (график, дыбыс т.б.) тұрады.
Объектілердің өзара байланысуына хабарлар қолданылады және үш бөлімнен
тұрады: объект идентификаторы, ағымдағы объектіде қолданылатын әдіс аттары
және таңдалған әдіс режимін қалпына келтіретін қосымша информациялар.
Күрделі программалар бірнеше біртипті объектілерді қолдануы мүмкін. Бұл
жағдайда әр объект үшін әдістер мен айнымалылар туралы информацияны жазу
тиімсіз. Бұл мақсатқа объектілер класы деген түсінік енгізілген. Класс
дегеніміз біртипті объектілерге арналған шаблон және объектілі айнымалылар
типтері мен әдістерін анықтайтын информациялардан тұрады.
Объекті-бағытталған технологияға негізделген программалау тілдері:
SmallTalk, Object  Pascal, Delphi 7, Visual Basic және С++ сияқты тілдері
жатады.
1991 жылы Microsoft корпорациясы компьютерлік әлемге Visual Basiс
бағдарламалау жүйесін ұсынады. Visual Basiс – оқиғалы-бейімделгіш
бағдарламалауды ұстанатын алғашқы тілдердің бірі. Оқиғалы-бейімделгіш
бағдарламалауда әрбір қадамды толықтай сипаттаудың орнына әр түрлі
оқиғаларға, яғни пайдаланушының әрекеттеріне қалай жауап қайтару керек
екенін көрсетсеңіз болғаны. Бұл бағдарламалау жүйесі арқылы бір ауқымды
бағдарлама емес, Windows-тың пайдаланушы басқаратын, өзара байланысты
микропрограммалары (процедура) бар қосымшасы құрастырылады. Visual Basiс
көмегімен осындай қосымшаларды жылдам құрастыруға болады, ол үшін міндетті
түрде бұл тілді терең, профессионалды түрде меңгеру қажет емес.
Өңдеудің интеграцияланған ортасы.  Visual Basiс-тің жұмыс ортасын өңдеудің
интеграцияланған ортасы деп жиі атайды( Integration Development Eniroment
немесе қысқаша IDE), себебі оның сан алуан функциялары бар: жобалау,
редакциялау, компиляциялау және қателерді іздеп, түзету.
 Сайып келгенде, IDE дегеніміз – бұл бағдарлама жасауға қатысатын құралдар
үстелі мен жұмыс ортасы. Бағдарламалауды іске қосқан кезде ең қажет деген
элементтер экранға шығады. Оларға қоса ондаған көмекші және жасырын
терезелер бар, олар тек пайдаланушыға керек кезде ғана шақырылуы мүмкін.
Си++. Бұл бағдарламалау тілі 1980 жылы пайда болды. Оны құрастырған
Бьяр Страуструп. Оның атауын ойлап тапқан Рик Масситти деген адам. Бұл Си
атты бағдарламалау тілінің Си++ тіліне эволюциялық түрде көшуін білдіреді.
Си++ - бұл Си тілінің объектігі бағытталған кеңейтілген түрі. Си++ үшін
базалық тіл ретінде Си-дің таңдалды, себебі ол:  көпмақсатты, ықшамды және
біршама төмен деңгейлі;  жүйелік бағдарламалаудың мақсаттарының көбісіне
жауап береді;  UNIX бағдарламалау ортасында жарамды болып табылады.
 Бағдарламалау тілдері төменгі деңгейден жылдар өте келе жоғарғы
деңгейлі бағдарламалау тілдеріне дейін дамыған. Осы даму барысында не
жаңадан тілдер ойланып табылып немесе бұрын болған тілдерді жетілдіру
арқылы жаңа бағдарламалау тілдерін жасаған. Осы бағдарламалау тілдері
арқылы біз машинамен, яғни компьютермен қарым-қатынас жасауға, аз да болса
бір-бірімізде түсінуге септігін тигізеді. Егер бағдарламалау саласындағы
жаңаша технологиялардың даму қарқынын қарайтын болсақ, онда келешекте аса
жоғарғы деңгейлі бағдарламалау тілдері пайда болатыны күмән туғызбайды.
Бағдарламалау тідерімен бірге бағдарламалау жүйесі де дамып келеді. Жүйелік
бағдарламалау, оқиғалы-бейімделуші бағдарламалау, объектіге бағытталған
бағдарламалау – олар алуан түрлі. Болашақта бағдарламалаудың жаңа, одан әрі
жетілдірілген түрлері пайда болады деуге әбден болады.

1.1 Объектілі бағдарланған программалаудың негізгі принциптері
Объектілі бағдарланған программалау – программалаудың құрылымдық
программалаумен салыстырғанда, әлдеқайда жетілдірілген түрі. Программалау
ғылымының дамуының белгілі кезеңінде күрделі есептің шешімін жеңілдету үшін
оны қарапайым ішкі есептерге бөлу туралы ұғым қалыптасты. Мәселе
программаның көп операторлардан емес, салыстырмалы түрде алғанда өз
бетінше бөліктер жиынтығынан тұруында болды. Ішкі программалар
программисттерді қарапайым есептердің мазмұнына терең үңілуден құтқарды,
яғни ішкі программа жасалынғаннан кейін оның қалай құрылғанын білмей–ақ,
оны қолдана беруге болады. Белгілі бір процедураның, функцияның қандай
қызмет атқаратынын білу жеткілікті. Соңынан құрылымдық программалау одан
әрі дамыды, яғни модульдер концепциясы дүниеге келді. Модуль – Turbo Pascal-
дің тұрақтылар, мәліметтер типі, айнымалылар, сол сияқты процедуралар мен
функциялар сипатталатын компиляцияланатын файлдары.
ОБП – бұл программалаудың ескі әдстемесінің табиғи эволюциясының
нәтижесі болып табылады. Ішкі программалар программистке қарапайым
есептердің мазмұнына енбей-ақ қолдануға болатыны сияқты объектілер мен де,
олардың қалай ұйымдастырылғанын білмей-ақ жұмыс істеуге мүмкіндік берді.
ОБП негізінде 3 негізгі принцип жатыр. Олар: инкапсуляция,
мұрагерлеу(наследование) және полиморфизм.
Инкапсуляция
Нысанды сипаттау барлық басқа типтер сияқты сипаттау бөлімінде болу
қажет. Нысан қамтитын мәліметтер нысан өрістері деп аталады. Қарапайым
нысандық типтің сипаттамасы жазбалар сипаттамасына өте ұқсас, тек record
резервтелген сөзінің орнына object сөзі қолданылады.
Type
Dot = object
a, b:integer;
end;
Бұл 2 өрістен тұратын нысандық тип, ол экранда a,b кординаталары бар
нүкте болып табылады. Өріс түрінде берілген мәліметтерден басқа нысан осы
өрістерге мүмкін әрекеттерді сипаттайтын ішкі программмалардан тұруы
мүмкін. Мұндай ішкі программалар әдістер деп аталады. Әдіс нысан өрістеріне
қатынас жасай отырып, оған параметр ретінде берілуді қажет етпейді. Өзінде
тек қана өрістерді ғана емес, сонымен қатар осы өрістерге мүмкін
әрекеттердің сипаттамасын қамтитын нысанның қасиетін инкапсуляция деп
атайды. Мұнда нысанның сипатталуында тек ішкі программаның тақырыптары
болады, ал әрбір ішкі программаның денесі жеке көрсетіледі. Алдыңғы
мысалдағы Dot типін қажетті әдістермен толықтырайық.
Type
Dot = object
a, b:integer;
procedure Init(x,y:integer);
procedure Show;
procedure Hide;
procedure Move(Da, Db:integer);
end;
{- - - - - - - - - - - - -}
Procedure Dot.Init;
Begin
a:=x; b:=y;
end;
{- - - - - - - - - - - - -}
Procedure Dot.Show;
Begin
PutPixel (a,b,white);
end;
{- - - - - - - - - - - - -}
Procedure Dot.Hide;
Begin
PutPixel (a,b,black);
end;
{- - - - - - - - - - - - -}
Procedure Dot.Move;
Begin
Hide;
a:=a+Da; b:=b+Db;
Show;
End.

Бұл мысалда нысан 4 әдістен тұрады. Init әдісі объектіні
инициализациялайды, яғни нүктеге бастапқы мән береді. Show және Hide
әдістері экрандағы нүктені жандырады және сөндіреді. Move әдісі
экрандағы нүктенің орнын ауыстырады. Нысандық тип жарияланғаннан кейін осы
типтік айнымалыларды жасауға болады немесе НБП терминологиясы бойынша нысан
экземплярын жасаймыз. Олар айнымалыларды сипаттау бөлімінде жарияланатын
статикалық айнымалылар, New стандартты процедура арқылы жасалған
динамикалық айнымалылар болуы мүмкін.
Var
Dot1: Dot;
Мұнда Dot типіне жататын Dot1 айнымалысы жарияланған. Нысан экземпляры
жасалынғаннан кейін оның өрістерінен әдістерге қатынас жасай аламыз. Нысан
өрісіне қандай-да бір стандартты ішкі программаны қолдану үшін оның
құрылымдық атауын қолдану жеткілікті – нысан идентификаторы мен нүкте
арқылы ажыратылған өріс идентификаторын көрсету.
НБП-да нысан өрістерімен жұмыс істеу кезінде тек оның әдістері
қолданылады.
Dot1.Init(100,100);
Dot1.Show;
Dot1.Move(50,50);
Жазбаларға қолданылатын сияқты, объектілерге де with операторын
қолдануға болады.
With Dot1 do begin
Init (100,100);
Show;
Move (50,50);
End.
Жоғарыда көрсетілген операторлар тізбегі бірдей. Төменде жоғарыда
қарастырылған мысалдардың толық программасы көрсетілген. Бұл программа
экранда нүктені бейнелейді және де бейнеленген нүктені бағдарша-пернелердің
көмегімен 4 бағытта жылжытуға болады.
Program ObjDot;
Uses crt, graph;
Type
Dot=object
a,b:integer;
procedure Init(x,y:integer);
procedure Show;
procedure Hide;
procedure Move(Da, Db:integer);
end;
{---------------------------------- ---}
Procedure Dot.Init;
Begin
a:=x; b:=y;
end;
{---------------------------------- ---}
Procedure Dot.Show;
Begin
PutPixel (a,b,white);
End;
{---------------------------------- ----}
Procedure Dot.Hide;
Begin
PutPixel(a,b,0);
End;
{---------------------------------- ----}
Procedure Dot.Move;
Begin
Hide;
a:=a+Da; b:=b+Db;
Show;
End;
{---------------------------------- ----}
Var
i,j,k,Err:integer;
a:char;
Dot1:Dot;
{---------------------------------- ---}
Begin
i:=detect;
InitGraph(i,j,’ ‘);
Err:=GraphResult;
If ErrgrOK then
Writeln(GraphErrorMsg(Err))
Else
begin
Dot1.Init(GetMaxX div 2, GetMaxY div 2);
Dot1.Show;
While KeyPressed do a:=ReadKey;
Repeat
Begin
a:=ReadKey;
case ord(a) of
72:Dot1.Move(0,-5);
80:Dot1.Move(0,5);
77:Dot1.Move(5,0);
75:Dot1.Move(-5,0)
End
End;
Until a=chr(27)
End
End.

Программада Dot нысаны жарияланды. Оның 2 өрісі, 4 әдісі бар. Ары қарай
Dot1 нысан экземпляры басқа айнымалылар сияқты жарияланды. Программа денесі
графикалық режимге өтуді жүзеге асыратын оператордан басталады. Содан кейін
Repeat операторы белгілі пернені басуды анықтайды.Case операторы 4
нұсқаудан тұрады, олар 4 бағдарша пернелеріне сәйкес келеді. Нұсқалардың
әрбіреуі нақты параметрлері бар Move әдісін шақырады, бұл әдіс нүктені
қажетті бағытта 5 пиксельге жылжытады. Repeat операторы арқылы
ұйымдастырылған циклдың тоқтау шарты 27 Scan кодын беретін Esc
пернесінің басылуы болып табылады.

Мұрагерлеу
Айталық, нүкте объектісінен басқа шеңбер объектісі қатысатын программа
құрайық. Әрине бұл жаңа типтің сипатталуын Dot типі сияқты басынан бастауға
болады. Дегенмен, бұл жаңа шеңбер – типтің Dot типімен ортақ өрістері және
әдістері бар. Яғни, шеңбер де нүкте сияқты оның центрін анықтайтын a,b
координатасымен сипатталады. Дегенмен, құрылатын нысанға шеңбердің радиусын
беретін өріс қосу керек. Ал әдістерге келетін болсақ, жаңа Ring типіне Move
әдісі қолданылады, нүктенің орнын ауыстыруы мен экранда шеңбердің ауысуы
бірдей жүзеге асады. Ал Init, Show және Hide әдістерін жаңадан жасауға тура
келеді. Сонымен, жаңа Ring типі Dot типінің кейбір әдістерін қайталайды.
Ендеше бар типтің негізінде оған жаңа өрістер мен әдістерді қоса отырып,
жаңа тип жасауға бола ма? Бұл мұрагерлеу деп аталатын объектілік типтердің
қасиеттерінің арқасында жүзеге асады. Мәселе мұрагерлеу туралы болғандықтан
генеологиялық терминологияға сәйкес жаңа нысанды жасауға негіз болатын бар
типті ата-бабасы немесе ата-аналық тип деп атайды. Ал құрылатын объектіні
ұрпағы деп атайды. Ұрпақ автоматты түрде өзінің ата-бабасының барлық
өрістері мен әдістерін мұраға алады. Мұрагерлеу қасиеті НБП-да қолданылады.
Оның арқасында бар нысанның негізінде көптеген жаңа нысандар құруға болады.
Осы нысандарға негіздей отырып, нысандарды көптеп кұра беруге болады және
де әрбір нысанның көп ұрпағы болуы мүмкін, бірақ оның ата-бабасы біреу ғана
болады. Ал енді Dot және Ring типтеріне оралайық. Ұрпақ типінің
сипаттауында ата-аналық типтің атауы көрсетілуі керек.
Type
Ring=object(Dot);
Rad=integer;
End;
Ring типінің сипатталуында шеңбердің радиусын анықтайтын Rad өрісі бар.
Бұл өріс dot типінде болмаған және де Ring типі өзінің ата-бабасының
өрістерін мұраға алады (нүкте координаталары a,b). Егер Ring типінің
сипаттамасын сәйкес әдістермен толықтырсақ, төмендегідей болады:
Ring=object(Dot);
Rad:integer;
Procedure Init(x,y,r:integer );
Procedure Show;
Procedure Hide;
End;
{------------------------}
Procedure Ring.Init;
Begin
a:=x; b:=y; Rad:=r;
end;
{------------------------}
Procedure Ring.Show;
Begin
SetColor (white);
Circle (a,b,Rad);
End;
{------------------------}
Procedure Ring.Hide;
Begin
SetColor (black);
Circle(a,b,Rad);
End;
Осы жерден ұрпақ-нысанның әдістері ата-ана объектісінің бірдей атаулы
әдістермен алмастырылатынын көруге болады. Басқа сөзбен айтқанда, егер
Ring.Move әдісіне қатынас жасалса, жүйе алдымен Ring объектісінің
сипаттамасында осындай атаудың бар-жоқтығын анықтайды. Егер бар болса, осы
жаңа әдіс қолданылады. Егер жоқ болса, ата-бабасынан мұраға алған әдісті
қолданылады.
Ескерту! Тек әдістерді ғана қайта анықтауға болады. Ал ұрпақ-
нысанындағы өріс атаулары ата-анасының нысанындағы өріс атауларымен сәйкес
келмеуі тиіс.
Ұрпақ объектісі жарияланғаннан кейін оның өрістерімен жұмыс істеу үшін
оның экземплярын жасауға болады.
Var Ring1: Ring.

Виртуалды әдістер мен полиморфизм
Алдыңғы программадағы Move әдісіне оралайық. Оның сипаттамасы
төмендегідей.
Procedure Dot.Move;
Begin
Hide;
a:=a+Da; b:=b+Db;
Show
End;
Осы жерден Move әдісінің Hide және Show әдістеріне қатынас жасайтынын
көреміз. Егер Move әдісін осы түрде dot және ring2 объектісі бар
программада қолдансақ не болады?
Бұл жағдайда нүкте үшін ешқандай қиындық туындамайды. Себебі, нүкте dot
объектісінің туған объектісі болғандықтан, нүкте еш қиындықсыз өшіп,
координатасын ауыстырып, қайта жаңарады. Ал шеңберге келетін болсақ,
Ring.Move объектілік жүйе, алдымен Ring объектілік типінің сипаттамасынан
осындай әдісті іздейді, таба алмағаннан кейін іздеуді ата-баба объектісінде
жалғастырады. Нәтижесінде Dot.Move әдісіне қатынас жасалады. Осыдан кейін
Move әдісінен Ring.Hide және Ring.Show әдістері шақырылу керек, бірақ бұл
орындалмайды: Ring1 нысан экземпляры мұраға алынған Dot.Move әдісіне
Ring.Hide және Ring.Show әдістерінің орнына Dot нысанының әдістерін
шақырады. Мұның себебі Dot.Hide, Dot.Show қатаң байланысқан, себебі олар
Dot объектілік типінің бірдей контексінде компиляцияланған. Басқа сөзбен
айтқанда, бұл әдістер арасындағы байланыс статикалық сипатқа ие. Бұл
жағдайда щеңбер емес, нүкте орын ауыстырады. Hide және Show әдістері қай
объект экземплярының Move әдісіне қатынас жасауына байланысты шақырылу үшін
не істеу керек? Бұл жерде статикалық байланысудан ерекшеленетін
динамикалық байланысу деп аталатын механизм көмеккке келеді. Бұл механизм
виртуалды әдістердің көмегімен жүзеге асады. Нысандық типтердің
сипаттамасында виртуалды әдістердің тақырыбы VIRTUAL резервтелген сөзімен
толықтырылады. Егер нысандық типтің ұрпақтарында қайта анықталған әдістер
бар болса, олар да виртуалды ретінде жариялануы қажет және де ата-баба
объектісінің әдістері сияқты формальді параметр жиынтығына ие болуы қажет.
Виртуалды әдістері бар Dot және Ring нысандық типтердің сипаттамасы
төмендегідей:
Dot = object
a, b:integer;
Constructor Init(x,y:integer);
procedure Show; virtual;
procedure Hide; virtual;
procedure Move(Da,Db:integer);
end;
{---------------------------------- --}
Ring=object(Dot);
Rad:integer;
Constructor Init(x,y,r:integer );
Procedure Show; virtual;
Procedure Hide; virtual;
End;

Мұндағы Constructor - процедурасының ерекше түрін бейнелейтін
резервтелген сөз. Енді Move әдісіндегі Ring1 нысан экземплярын шақыруға, ал
одан Hide және Show әдістерін шақыруға оралайық. Мұнда жүйе алдымен
Dot.Move әдісіне қатынас жасайды, мұндай атаулы әдіс алдымен Ring нысанынан
ізделінеді де, таба алмағаннан кейін сәйкес ата-баба нысанының әдісіне
қатынас жасайды. Осыдан кейін шеңбердің орнын ауыстыру үшін алдымен оны
көрінбейтіндей ету қажет (Ring.Hide әдісін шақыру).Содан кейін оның
центрінің координатасын өзгертіп, шеңберді экрандағы жаңа орында бейнелеу
қажет (Ring.Show әдісін шақыру). ТР программасын орындау кезінде Dot.Move
әдісіне шақырылатын объект үшін анықталған әдіске қатынас жасау қамтамасыз
етіледі. Бұл жерде Ring.Show және Ring.Hide әдістеріне қатынас жасалады.
Қорытындысында сәйкес пернелердің көмегімен жылжытуға болатын экрандағы
нүкте мен шеңберді бейнелейтін программаның толық мәтінін көрсетейік:
Program ObjDotСirc;
Uses crt, graph;
Type
Dot=Object;
a,b:integer;
constructor Init(x,y:integer);
procedure Show; virtual;
procedure Hide; virtual;
procedure Move(Da,Db:integer);
end;
{---------------------------------- }
Ring=object (Dot);
Rad:integer;
constructor Init(x,y=integer);
procedure Show; virtual;
procedure Hide; virtual;
end;
{---------------------------------- }
Constructor Dot.Init;
Begin
a:=x; b:=y;
end;
{---------------------------------- }
Procedure ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Дельфи ортасы
WEBbrowser компонентін қолданып бағдарлама құру
Delphi бағдарламалау тілінде проектіні құрастыру
Delphi программалау ортасы туралы жалпы түсінік
Borland Delphі ортасының интерфейсі
Delphi ортасындағы функционалды инженерлік калькулятор бағдарламасын құру
Delphi объектілі бағдарлы бағдарламалау тілінің мүмкіндіктері
Delphi ортасы. Проект. Форма. Қасиеттер.
Дельфи тілінде берілгендерді өңдеу әдістері
Бағдарлама компоненттеріне арналған блоктар
Пәндер