- •1 Delphi ортасымен танысу
- •1.1 Негізгі ұғымдар. Бағдарлама құру кезінде шешілетін тапсырмалар
- •Зертханалық жұмыс № 1 «Delphi интерфейсінің элементтері»
- •Зертханалық жұмыс № 2 «Негізгі пішіннің жобасы мен модульінің бағдарламалық коды»
- •Interface
- •Implementation
- •Initialization
- •Зертханалық жұмыс № 3 ««Тест» қосымшасын құру»
- •Mainform модулінің соңғы бағдарламалық коды
- •2 Object pascal тіліндегі объектілі – бағытталған бағдарламалау
- •2.1 Класс және объект туралы түсінік
- •2.2 Инкапсуляция, туындау және полиморфизм
- •2.3 Кластың синтаксисі
- •Interface
- •Implementation
- •2.4 Кластың өрістері
- •2.5 Кластың әдістері
- •Implementation
- •2.6 Кластың қасиеттері
- •2.7 Кластың құрылымы. Кластың элементтерінің көріну аймағы
- •2.8 Кластарға операциялар қолдану. Is және as кілттік сөздері
- •2.9 Оқиға және меншіктеу
- •Бақылау сұрақтары:
- •Зертханалық жұмыс №4 «Полиморфизм және көрнекілік әдістер»
- •Interface
- •Implementation
- •Зертханалық жұмыс №5 "Қаситтер мен әдістер"
- •Өз бетінше орындауға арналған тапсырма
- •Зертханалық жұмыс №6 "Оқиғалар"
- •Interface
- •Implementation
- •Өз бетінше орындауға тапсырма
- •3 Терезелік қосымшаларды құру
- •3.1 Label, Edit, Memo мәтіндік құрауыштары. Button батырмасы
- •Зертханалық жұмыс №7 "Қарапайым Windows-қосымшасын құру"
- •3.2 Пернетақта арқылы берілген хабарламаны өңдеу
- •3.3 Тышқан арқылы берілген хабарламаны өңдеу
- •Зертханалық жұмыс №8 “tForm объектісі”
- •3.4 Басқару элементтерінің тасуын қамтамасыз ететін сипаттамалар (Drag & Drop тетігі)
- •Зертханалық жұмыс №9 "Экрандық объектілерді сүйреу"
- •3.5 Диалог терезелері. Dialogs парағындағы Delphi құрауыштары (Open Dialog, Save Dialog, Font Dialog және т.Б.)
- •Тәжірибелік жұмыс №10 «Мәтіндік редактор»
- •3.6 Delphi - дің кескінді құруға тағайындалған кластары мен құрауыштары. Timer – таймер құрауышы
- •Image құрауышы.
- •Зертханалық жұмыс №10 «Бейнелерді құру»
- •Interface
- •Implementation
- •Қарандаш және қылқалам
- •Қарапайым графиктерді сызу әдістері
- •Функциялардың графиктері мен диаграммаларын сызу
- •Interface
- •Implementation
- •5. Мультимедиалық мүмкіндіктер
- •5.1. Animate компоненті
- •Interface
- •5.2. MediaPlayer компоненті
- •5.3. Дыбысты шығару
- •Implementation
- •5.4. Видеороликтер мен анимацияны қарап шығу
- •Implementation
- •5.5 Анимацияны құру
- •Әдебиеттер тізімі
Бақылау сұрақтары:
Класс пен оның элементтеріне ат тағайындағанда ұсынылатын ережелер.
Класс дегеніміз не? Объект дегеніміз не? Кластың жариялануы. Объектінің жариялануы. Кластың синтаксисі.
Кластың өрісі дегеніміз не? Мысалдар. Кластың өрістерінің қалқалануы. Мысалдар.
Кластың әдісі болып не табылады? Мысалдар. Кластың әдісі кәдімгі процедурадан несімен ерекшеленеді?
Әдістердің қалқалануы. Статикалық қалқалану. Динамикалық қалқалану.
Динамикалық, виртуальды және қалқалау әдістері. Мысалдар.
Абстракті әдістер. Мысалдар. Қайта іске қосылатын әдістер.
Конструктор мен деструктор. Мысалдар.
Кластың қасиеті. Қасиеттің синтаксисі. Мысалдар.
Қасиеттің класы өрістің класынан несімен ерекшеленеді? Read, write специфиациялары.
Инкапсуляция. Мысал.
Туындау. Мысал.
Полиморфизм. Мысал.
Кластың құрылымы. Published, private, protected, public секциялары.
Кластарға амадар қолдану. IS және AS кілттік сөздері. Мысалдар.
Оқиға. Оқиғаның сипатталынуының синтаксисі. Мысалдар.
Процедуралық тип. Мысалдар.
Ең қарапайым процедуралық тип болып қандай тип табылады? Sender параметрі.
Оқиғаның өңдегішін қалай шақырады?
Оқиғаға қайта ат тағайындау. Мысалдар.
Өз бетінше орындауға арналған тапсырма
Объектілі – бағытталған бағдарламалаудың негізгі принциптері. Объект, хабарлама, класс, объектінің данасы және әдіс.
Абстракция, инкапсуляция, туындау және полиморфизм. Мысалдар.
Delphi – дің абстрактілі кластарының сипаттамалары (TObject, TPersistent, TComponent).
Delphi – дің абстрактілі кластарының сипаттамалары (TControl, TGraficControl, TWinControl, TScrollingWinControl).
Stored, default (немесе nodefaulte), implements спецификациялары. Мысалдар.
Берілгендердің динамикалық құрылымы. Нұсқағыштар, динамикалық айнымалылар. Мысалдар.
Variant типі. Variant типті айнымалылар. Variants модульі.
Зертханалық жұмыс №4 «Полиморфизм және көрнекілік әдістер»
Полиморфизм — бұл әртүрлі кластарға кіретін әдістерге бірдей ат тағайындау мүмкіндігі. Полиморфизмнің концепциясы Концепция полиморфизма обеспечивает в случае применения метода к объекту использование именно того метода, который соответствует классу объекта.
Біреуі қалған екеуіне базалық класс болатындай үш класс анықталсын:
type
// базалық класс
TPerson = class
FName: String; // өрістің аты
Constructor Create(AName: String);
Function Info: String; virtual;
end;
// TPerson – нан туынды
TStud = class (TPerson)
FGr: Integer; // оқу тобының нөмірі
Constructor Create(Aname: String; Gr: Integer);
Function Info: String; override;
end;
// TPerson – нан туынды
TProf = class(TPerson)
FDep: String; // құжыраның аты
Constructor Create(AName: String; Dep: String);
Function Info: String; override;
end;
Әрбір класта Info әдісі анықталған. Базалық класта virtual директивасының көмегімен Info әдісі көрнекі болып анықталған. Әдістің көрнекі болып анықталуы еншілес класқа көрнекілік әдісті өз меншік әдісімен айырбас жасауға мүмкіндік береді. Әрбір еншілес кластың өзінің Info класы анықталған, ол аталық кластың сәйкес келетін әдісін айырбастайды (аталық кластың көрнекілік әдістерін ауыстыратын туындалған кластың әдісі, override директивасында орналастырылады).
Төменде әрбір класс үшін Info әдісінің анықталуы келтірілген.
function TPerson.Info: String;
begin
result := ' ';
end;
functicn TStud.Info: String;
begin
result := FName + ' группа ' + IntToStr(FGr)
end;
function TProf.Info: String;
begin
result := FName + ' кафедра ' + FDep;
end;
Екі класс та бір базалық кластан туындағандықтан студенттер мен оқытушылардың тізімін былай жариялауға болады (бұл жерде мынаны еске алу қажет, объект дегеніміз - бұл нұсқағыш):
list: array[1..SZL] of TPerson;
Тізімді осылай жариялауға болады, өйткені Object Pascal аталық кластың нұсқағышына еншілес кластың нұсқағышының мәнін меншіктеуге мүмкіндік береді. Сондықтан list массивінің элементі Tstud класының және TProf класының элементтері бола алады.
Студенттер мен оқытушылардың тізімін Info әдісін массив элементтеріне қолдану арқылы шығаруға болады. Мысалы, былай:
st := ' ';
for i := 1 to SZL do // SZL – тізім – массивінің өлшемі
if list[i] <> NIL
then st := st + list[i] .Info + #13;
ShowMessage(st);
Бағдарламаның орындалуы барысында массивтің әрбір элементі TStud типті объектіден де, TProf типті объектіден де тұра алады. Полиморфизмнің коцепциясы объектіге объектінің типіне сай келетін әдісті қолдануды қамтамасыз етеді.
Келесі бағдарлама жоғарыда қарастырылған TPerson, TStud және TProf кластарының жариялануын қолдана отырып, студенттер мен оқытушылардың тізімін қалыптастырады және шығарады. Бағдарламаның мәтіні 2.1 листингісінде, ал қарым – қатынас терезесі сурет 2.1 келтірілген.
Сурет 2.1 «Полиморфизм» бағдарламасының қарым – қатынас терезесі
2.1 листингісі Полиморфизмнің демонстрациясы
Unit polimor_;
