Модульдер – бағдарламаның үзіндісін орналастыру үшін қолданылатын бағдарламалық бірлік. Модуль деп бағдарламаның белгілі бір тәуелсіз бөлігін атайды және олар стандартты және бейстандартты болып екі топқа бөлінеді.
Модульдің коды бағдарламаның бет алысын анықтайды.
Модуль басқа модульдерде және бағдарламада пайдалану мүмкіндігін туғызатын бөлек компиляцияланатын әртүрлі типтердің анықтамалық бөлігінен және орындалатын операторлар жиынтығынан тұратын бағдарлама. Модульдер қолданбалы бағдарламалардың жиынын құрастыруға мүмкіндік береді және олар жадтың бөлек сегментінде орналасады. Жалпы модульдер бөлек орындала алмайтын бағдарлама. Модульдерді қолдну арқылы күрделі бағдарламаларды құруға болады.
Кез келген модульдің құрамына келесі бөліктер кіреді:
Тақырыбы;
Интерфейстік бөлігі;
Орындалатын бөлігі;
Терминатор.
Модуль тақырыбы арнайы Unit сөзінен басталады, содан соң модуль атауы және нүктелі үтір тұрады. Интерфейстік бөлігі Interface , ал орындалатын бөлігі Implementation–түйінді сөзімен басталады. Модульдің терминаторы бағдарламаның терминаторы сияқты -End . түйінді сөзімен аяқталады.
Unit <Модульдің аты, мысалы Unit>
//интерфейстік бөлігі
Interface
Uses <модульдер тізімі>
Const <тұрақтылар тізімі>
Type <типтер анықтамасы>
Var
<процедуралар тақырыбы>
<функциялар тақырыбы>
Implementation
Uses <модульдер тізімі>
Const <тұрақтылар тізімі>
Type <типтер анықтамасы>
Var
<процедуралар анықтамасы>
<функциялар анықтамасы>
//инициялизациялау бөлігі
Initalisation
<операторлар>
// модульдің жұмысын тоқтатқандығы
Fininitalisation //орындалатын әрекеттер жиыны
<операторлар>
end.
Интерфейс бөлігінде аталмыш модульде қолданылатын, аты Uses тізімінде көрсетілген барлық модульдер мен бағдарламаларға қол жетерлік мүмкіндігін туғызатын идентификаторлардың анықтамасы орналасады. Сонымен қатар, бұл бөлікте ортақ тұрақтылар, типтер, айнымалылар және ішкі бағдарламалардың тек қана тақырыптары жарияланады.
Модульдің атауы – оны басқа модульдермен және негізгі бағдарламамен байланыстыру үшін қолданылады. Модульдің интерфейстік объектілеріне қол жеткізу үшін бағдарламада қажетті TPU (Turbo Pascal Unit - машина тіліне аударылған) файлдың атын көрсету керек. бұл байланыс келесі сөйлем арқылы жүзеге асырылады:
Uses «модульдер тізімі»;
Uses - арнайы сөз; «модульдер тізімі» - бағдарлама мен модульдерді бір-бірімен байланыстыруға қажетті модульдердің тізімі. Бұл сөйлемді қолданатын модульдер спецификациясы деп атайды және ол негізгі бағдарламаның тақырыбынан соң орналау қажет.
Егер аталмыш модуль басқа бір модульдің объектілерін қолданса, онда осындай спецификация Interface түйінді сөзінен соң бірден орналасады. Пайдаланылатын модульдердің спецификациясы келтірілген жағдайда бағдарламаға қосылған модульдің интерфейстік бөігінің барлық сипаттамалары белгілі деп саналады.
Модульдің интерфейстік бөлігінде негізгі бағдарламада және басқа модульдерге қолданылатын аталмыш модульдің барлық сыртқы объектілері анықталады. Паскаль бағдарламасы сияқты бұл анықтамадағы объектілердің реті кез келегн түрде бола алады. Интерфейстік бөлікте ішкі бағдарламалардың тек қана тақырыптары келтіріледі, ал олардың толық анықтамасы модульдің орындалатын бөлігінде көрсетіледі.
Implementation - модульдің орындалатын бөлігінде интерфейсте көрсетілген ішкі бағдарламалардың орындайтын жұмысы анықталады. Ішкі бағдарламалардың орналасу реті интерфейстік бөлігінде көрсетілген ретімен бірдей болуы шарт емес.
Бұл бөлімде ішкі бағдaрламлардың тақырыбын ғана көрсетсе жеткілікті, себебі параметрлер тізімі мен функция нәтижесінің типі интерфейсте анықталғаг. Сондай-ақ мұнда аталмыш модульге ғана тән және бұл модульден тыс белісіз тұрақтыларды, типтерді, айнымалыларды және ішкі бағдарламаларды жариялауға болады.
Инициялизациялау бөлігінде осы модульдерді іске асыратын бағдарлама жұмысының басталғандығы туралы операторлар орналасады. Модульдердің іске асырылуы бағдарламаның Uses бөлігінде көрсетілген ретімен орындалады. Бұл бөлік Initalisation сөзімен басталады. Бірақ ол бөліктің болмауы да ықтимал.
Егер бағдарламада инициялизациялау бөлігі бар болса, онда деинициялизациялау бөлігі болуы мүмкін. Бұл бөлік Fininitalisation сөзінен басталады және оның құрамына бағдарлама жұмысын тоқтатқандағы орындалатын операторлар кіред. Модульдерді деинициялизациялау әрекеттері бағдарламаның Uses бөлігінде көрсетілген ретіне кері бағытта орындалады.
Әр жаңа форма құрылғанда жаңа модуль де құрылады. Жалпы бағдарлама құрамында көптеген формалар және олармен байланысты модульдер болуы мүмкін.
Жоғарыдағы құрастырылған формаға сәйкестелген модульдің кодын File – Open опцияларын орындау арқылы файлын ашып, көруге болады (3.2 - сурет). Модульдің коды орналасқан файл келесі:
Unit Example;
Interface
Uses Windows,Messages,SysUtils, classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, Buttons, ExtCtrls;
//Example модулін Uses тізімідегі
// аталған стандартты модульдермен бірге қолдану
Type
TfmExample=class(TForm)
Panel1:Tpanel;
BbRun:TbitBtn;
BbClose:TbitBtn;
EdInput:Tedit;
LbOutput:Tlabel;
MmOutput:Tmeo;
Private
{Private declarations}
public
{Public declarations}
end;
var
fmExample:TfmExample;
implementation
{$R*.DFM}
end.
Бұл мәтінді Delphi ортасы өнзі құрастырады. Жоғарыда айтылғандай, жобаның файлына киілуге тыйым салынған, ал модульдің файлына әртүрлі жұмыстарды орындатуға негізделген өзгерістерді енгізуге болады.
6 - сурет. Модуль кодын ашу терезесі.
Модульдің интерфейстік бөлігінде бір тип (класс TfmExample) және бір объект айнымалысы анықталған.
Класс деп объектілерді құрудағы қолданылатын үлгілерді айтады, ал объект сол үлгінің туындысы болып табылады. Үлгілер Object Pascal тілінде анықталған тип және келтірілген мысалды ол Type TfmExample=class (TForm) деп анықталған. Стандартты класс Tform Windows–тің бос терезесін құрастыру жұмысын атқарады. TfmExample oсы кластың туындысы, яғни класс алғы буындағы TForm–ның барлық мүмкіндіктерін иемденеді және оларға бос формаға орналастырылған компоненттер жиынын біріктіреді.
Соңғы буыннан өзінің бағдарламалық дайындамалары бар жаңа туындыларды құруға болады және т.с.с. Нәтижесінде ағаш тәріздес саты құрылады, төбесінде ең түпкі буын TObject - қарапайым класы тұрады. Ал төменгі сатыларында сол бір ғана Toject туындылары орналасады.
4-ДӘРІС. Жобаны компиляциялау және орындау.
Қолданба атауы;
Жобаны компиляциялау;
Жобаны жинау;
Жобаны орындау.
Класстар- ол ерекше «ойлап шығару» программист үшін қиындатылған программаны өңдеу және оның сапасын жақсарту. Негізінен осы класстрда 3 фундаметальді принциптер жатыр олар: инкапсуляция, наследование и полиморфизм.
Инкапсуляция- оның жалғыз 3 мәні бар олар: - өрістер, әдістер және қасиеттері. Осы мәндерді біріктіру бір бүтін және оны инкапсуляция деп атайды.
Мысалы: Tform класы ( өзіне инкапсулировать) қажетің тәрін өзіне қамтып сақтау.
Windows- терезесіне сақтау үшін, Tmemo класын толық жұмыс істелінген текстік редактор, Ttimer-программасы жұмысты таймермен және тағы басқа қамтамассыз етеді.
Наследование-кез-келген класс басқа кластардан бұзылуы мүмкін. Ол үшін алдын-ала кластар көрсетіледі.
TchildClass=class (Tparent Class).
Бұзылған класстар автоматты түрде өріске мұра қалдырады, мысалы тәсілдер және қасиеттер жаңадан қалдыруға болады.
Бүкіл класс Object Pascai-да бір кластан ғана бұзылады ол Tobject. Бұл класс өріс немесе қасиеттері жоқ, кез-келген обьект өмірлік циклін қамтамассыз етеді- олардың құруынан бұзылғанынша дейін.
TPersistent-ол мәлеметтерді файлға сақтай "алады" және одан қайтадан қайтара алады, нәтижесінде олардан кейінгіні де шығара алады.
TComponent-класынан өз уақытында, өзара іс-қимыл етіп ортада өңделеді.
TControl-жалғыз файлдарменжұмыс істемей және ортада өңделеді, яғни ол экранда шыққан бейнеге қызмет етеді.
Полиморфизм-ол мәндері ұқсас әртүрлі әдістермен кластық қасиеттерді проблемасыз шеше алады.
Object Pascal рамкасында орнықты орналасқан осы қасиеттер немесе басқа алгаритмдардың ауысуы.
Әдістері
Инкапсуляцияланған класстар процедура және функцияларды- әдістер деп атайды.
type
TmyClass=class
Function MyFunc (aPar:Integer):Integer;
Procedure MyProc;
end;
var
aObject:TmyClass;
begin
……………..
aObject.MyProc;
……………..
end;
Object Pascal- да көбінесе динамикалық әдістерді пайдаланады.
Қасиеттері
Қасиет –дегеніміз ол механизм кластары, өрістерге жүйелеп кіруге болады. Қасиеттер көбінесе қара қоюланған сөздермен белгіленеді:Property, Read және Write.
Негізінен қасиеттер, кейбір өрістермен байланысты болады. мысалы:
type
TaClass=class;
IntField:Integer;
Function Getfield (Value:Integer);
Procedure IntegerValue:Integer read Getfield write SetField;
end;
Контекстік программада күделіктігідей өрістер қасиеттерің алдымен шығарады.
Мысалы біз мынадай операторлар жазуымызға болады.
var
aClass:TaClass;
Value:Integer;
begin
aClass:=TaClass.Crea {өріс немесе қасиетке кіріспес бұрын
aClass:=IntegerValue:=0; алдымен конструкторға көніл бөлген дұрыс}
………………..
Value:=aClass.IntegerValue;
…………………..
aClass.Destoroy; //Қажетсіз обьектіні жоюға арналған
end;
Егер өрістерді оқуға кіруге болса немесе жазуға болса онда write немесе read жіберу қажет.
5-ДӘРІС. Қолданба дайындау
Қарапайым қолданба.
Қолданба интерфейсін жасау.
Қолданбаның функционалдылығын анықтау.
Интерфейстер -COM (Component Object Model — объектілердің компоненттік моделі), COBRA (Common Object Request Broker Architecure — жалпы объектілерді талап ететін брокерлі архитектура) технологияларында және осыған байланысты қашықтықтан кіру мүмкіндігі бар технологияларда басты роль атқарады. басқа сөзбен айтқанда, басқа машинада орналасқан объектілер объектілерге кіру технологиясы. Оның негізгі міндеті — алыстағы объектінің қасиетін, әдісін және оқиғасын сипаттау, яғни программалау тілінде клиентке арналған қосымшаны жасауда пайдаланылады. Егер ол өзінің жеке меншік объектісі болса, интерфейститің көмегімен клиент программасы алыстағы объектіге қатынас жасайды.
Интерфейстер тақырыбының ауқымы өте кең және қызықты да. Бірақ интерфейстер жөніндегі жалпы түсінікпен ғана шектелеміз. Интерфейс дегеніміз — бос класс.
Интерфейстің құрылуы және пайдаланылуы
Интерфейстер типтерді сипаттаудың дербес жағдайы. олар interface қызметші сөзінің көмегімен хабарланады. Мысалы,
Type
IEdit=interface
Procedure Copy;stdcall;
Procedure Cut;stdcall;
Procedure Paste;stdcall;
Function Undo;stdcall;
End;
Мұндағы хабарлау абстракт класты сипаттаумен бірдей, яғни интерфейсті шақыру ондағы хабарланған қасиеттер мен әдістерді талдауды талап етпейді.
Кластардан айырмашылығы интерфейстің өрістері болмайды, сондықтан ондағы read және write бөлімінде хабарланған қасиеттер тек әдіске ғана сілтеме жасауы мүмкін. Интерфейсте хабарланған барлық мүшелер тек Public секциясында орналасады.
Әдістер абстракт (abstract), виртуалды (virtual), динамикалық (dinamic) немесе жабылатын (override) бола алмайды. Интерфейстерде конструкторлар немесе деструкторлар болмайды, яғни ондағы сипатталған әдістер тек оны сүйемелдейтін кластың шеңберінде ғана жүзеге асырылады, ол интерфейстің аты оның аталық тізіміндегі кластың хабарлануында көрсетіледі:
TEditor=class(TInterfacedObject,IEdit)
Procedure Copy;stdcall;
Procedure Cut;stdcall;
Procedure Paste;stdcall;
Function Undo:Boolean;stdcall;
End;
Әдеттегі кластан интерфейстік кластың айырмашылығы оның бірнеше аталық интерфейсі болуы мүмкін:
Type
IMyInterface=interface
Procedure Delete; stdcall;
TmyEditor=class(TInterfacedObject,IEdit,IMyInterface)
Procedure Copy;stdcall;
Procedure Cut;stdcall;
Procedure Paste;stdcall;
Function Undo:Boolean;stdcall;
Procedure Delete; stdcall;
End;
Кез келген жағдайдағы интерфейстік класты жүзеге асыру бөлімінде сәйкес интерфейстік әдістерді сипаттау қажет. Мысалы, егер интерфейс хабарланған болса
IPaint=interface
Procedure CirclePaint(Canva:Tcanvas; x,y,R:integer);
Procedure RectPaint(Canva:Tcanvas; x1,x2,y1,y2,R:integer);
End;
Кез келген жағдайдағы интерфейстік класты жүзеге асыру бөлімінде сәйкес интерфейстік әдістерді сипаттау қажет. Мысалы, егер интерфейс хабарланған болса
IPaint=interface
ProcedureCirclePaint(Canva:Tcanvas; x,y,R:integer);
Procedure RectPaint(Canva:Tcanvas; x1,x2,y1,y2,R:integer);
End;
және оның интерфейстік класын пайдаланатын болса,
TPainter=class(TInterfaceObject, Ipaint)
ProcedureCirclePaint(Canva:Tcanvas; x,y,R:integer);
Procedure RectPaint(Canva:Tcanvas; x1,x2,y1,y2,R:integer);
End;
онда implementation бөлімінде әдістің жүзеге асырылуын көрсету қажет:
Procedure Tpainter.CirclePaint(Canva:TCanvas; x,y,R:integer);
begin
With Canva do
Ellipse(x,y,x+2*R,y+2*R);
End;
Procedure Tpainter.CirclePaint(Canva:TCanvas; x1,y1,x2,y2,R:integer);
begin
With Canva do
Rectabgle(x1,y1,x2,y2);
End;
Енді шеңбер және квадрат сызу үшін кластың интерфейстік объектісін хабарлауға болады:
Procedure Tform1.PaintBoxPaint(Sender:TObject);
var
Painter:IPaint;
begin
Painter:=TPainter.Create;
Painter.CirclePaint(PaintBox1.Canvas,10,0,10);
Painter.RectPaint(PaintBox1.Canvas,40,0,60,20);
End;
Интерфейс оның пайдаланатын интерфейстік класын хабарлағанға дейін хабарланатындығын қарамастан, оның әдістерінің кластың хабарлауында келтірілетіні міндетті екені компиляторға белгілі. Біздің жағдайда оны былай көрсетуге болады:
Type
TPainter=class(TInterfaceObject,IPaint)
End;
Мұнда жазу қате болар еді: компилятор CirclePaint және RectPaint әдістерінің сипатталуын қоюды талап етер еді.
Сондай-ақ, Object Pascal тілінің барлық кластары жалғыз аталық класс Tobject класынан туындағаны тәрізді барлық интерфейстік кластар TinterObject жалпы аталығынан туындаған. Бұл аталық жадыны интерфейстік объектілер үшін үлестіре алады және Iunknow глобальды интерфейсін пайдаланады:
Type
TinterfacedObject=class(TObject,IUnknown)
Private
Frefcount:integer;
Protected
Function QueryInterface(constIID:TGUID; outObj):integer;stdcall;
Function_AddRef:integer;stdcall;
Function_Relefse:integer;stdcall;
Public
Property RefCount:integer read FrefCount;
End;
Егер алдыңғы мысалда Tpainter класы төмендегідей сипатталған болса:
TPainter=class(TPaint)
ProcedureCirclePaint(Canva:Tcanvas; x,y,R:integer);
Procedure RectPaint(Canva:Tcanvas; x1,x2,y1,y2,R:integer);
End;
Онда компилятор TinterfaceObject класының QueryInterface_Add_Release әдістерін қосуды талап етер еді. Бұл кластың FrefCount өрісі интерфейстік объектіні шақыру есептегішінің қызметін атқарады және Windows схемасында қабылданғанындай пайдаланылады: Iunknow интерфейсінің Add әдісіне әрбір оралған сайын есептегіш 1-ге артады, ал Release әдісіне оралған сайын есептегіш 1-ге кемиді. Бұл өрістің мәні нольге тең болғанда интерфейстік объект жойылып, жадыдан алған орнын босатады.
Интерфейстік объектіге as типтерді келтіру операторын қолдануға болады, бұл жағдайда керекті интерфейс таңдалады:
Procedure PaintObject(P:TInterfacedObject)
Var x:IPaint
begin
Try
X:PasIPaint;
X.CirclePaint(PaintBox1.Canvas,0,0,20)
Except
ShowMessage('объект IPaint интерфейсін сүйемелдемейді')
End; end;
Мұндай меншіктеуді кездестіргеннен кейін компилятор код құрады және оның көмегімен Ipaint интерфейсіне сілтеме жасауды шақырылады. Егер объект көрсетілген интерфейсті сүйемелдемейтін болса, шектен тыс жағдай пайда болады.
қашықтықтағы объектіні пайдалануға есептелген интерфейстер глобальды бірегей идентификатормен жабдықталуы тиіс (Guid). Мысалы,
IPaint=interface
['{AYAFEB60-7705-11D2-8B-41-4444553540000}']
ProcedureCirclePaint(Canva:TCanvas; x,y,R:integer);
ProcedureRectPaint(Canva:TCanvas; x1,y1,x2,y2:integer);
End;
Implements қызметші сөзінің көмегімен программист кейбір класқа қандай да бір қасиетті қоса алады. Бұл қасиеттің типі интерфейс немесе класс болуы мүмкін. Егер қасиеттің типі интерфейс болса, бұл интерфейстің аты аталық кластар тізімінде көрсетілуі тиіс, яғни интерфейстік кластағыдай:
Type
IMyInterface=interface
Procedure P1; Procedure P2;
End;
TMyClass=class(TObject,IMyInterface)
IMyInterface=IMyInterface;
Property MyInterface:IMyInterface
Read FMyInterface implements ImyInterface;
End;
Мұнда мына мәселеге көңіл аудару қажет: мысалдағы TmyClass интерфейстік класс болып табылмайды, яғни Р1 және Р2 әдістері орындалатын класс.
Егер одан MyInterface өкілетті қасиетін анықтауды алып тастаса, онда ол интерфейстік болып табылады және MyInterface әдісін сипаттау қажет.
Өкілетті қасиетте міндетті түрде read болуы тиіс. Егер оның типі класс болса және ол сол хабарланған болса, оның басқа өкілетті қасеиттерінің болуы мүмкін емес.
6-ДӘРІС. Дайындаудың интегралданған ортасының құралдары
кіріктірілген отладчик,
жоба шолушысы,
нысандар қоймасы,
анықтама жүйесі.
Delphi –де графиканы пайдалану TGanvas класына негізделген (Ganvas –канва, сурет салу, кенебі). Түрлі суреттермен графиктер салу үшін TGanvas класына туындалған 3 класты пайдалануға болады: Windows шрифі үшін –Tfont, түрлі сызықтар сызу үшін Tpen және тұйық фигураларды бояу үшін- TBrush (font-шрифт, pen-қалам, brush-бояу жаққыш).
Tpen- перо обьектісін құрайды, сызық сызуға арналған.
Tpen- обьект шрифтты құрайды, кез-келген графиктік құрылғыға арналған (экран, принциптер, плоттера т.б)
Pixels қасиеттерінің көмегімен канвыдын бүкіл пикселі 2 түрдегі массив нүктесін көрсетеді.
Пиксельдің түрін өзгерту, қайтадан бейнені жеке-жеке нүктеде салуға болады.
Procedure Arc (x1, y1, x2, y2, x3, y3, x4, y4: Integer)
|
Доға элипст сызу (x1, y1)- (x2, y2) доғаның басы қиып өтуде жатыр,(x3, y3) нүктесінің центірінен өтеді, ақырында (x4, y4) центірінен бұрышқа дейін қилысады.см(а)
|
Procedure Chard (x1, y1, x2, y2, x3, y3, x4,y4: Integer)
|
Элипс сегментің сызу (x1, y1)- (x2, y2), бастапқы доға сегменті элипстің қилысуында жатыр(луча), центір нүктесінен (x3, y3) өтеді, ал сонында- қилысуы с лучом центірінің (x4, y4) нүктесінен өтеді. см(б)
|
Procedure Pie (x1, y1, x2, y2, x3, y3, x4,y4: Integer)
|
Секторлық элипсті сызу, (x1, y1)- (x2, y2), центірлік нүктесінен (x3, y3) жүргізілген, ал центірінің соңғы нүктесінен (x4, y4) жүргізілген. Доға сағат тіліне қарсы сызылады. Доғаның басы және соңы тура центірінде қилысады. см(в)
|
Procedure RowndRect (x1, y1, x2, y2, x3, y3, x4,y4: Integer)
|
Cызық сызады және тікбұрышты толықтырады (x1, y1)- (x2, y2) домалақ бұрыштармен. Тікбұрыш (x1, y1)- (x3, y3), доғаның бұрыштарының домалақтану- ының анықтайды. см(г)
|
Қасиет Тағайындама
Color Қаламұш арқылы салынған сызық түсі(15 түрлі)
Style Қаламұш арқылы салынған сызық стилі. Мүмкін мәндер:
psSolid (тұтас сызық), psPash(пунктирлік)
Width Пиксель өлшемі бойынша сызық қалындығы.
|
1-кесте. TPen қасиеттері.
Қасиет Тағайындама
Color Шрифт түсі
Name Шрифт атауы (мысалы, Times Kaz)
Style Шрифт стилі (жартылай қалың, курсив,т.б.) мысалы, программада шрифті жартылай қалың, курсив ету операторының жазылуы: Form 1. Canvas. Font. Style= [fsBold,fsItalic]
|
3-кесте. TBrush (негізгі қасиеті)
Қасиет Тағайындама
Color Бояу жаққыш түсі (объектінің боялу түсі)
|
4-кесте. TCanvas класының кейбір әдістері.
MoveTo(x,y:integer);
(х,у) нүктесіне қаламды орнату
LineTo(x,y:integer);
Қаламұштың ағымдық орнынан бастап, (х,у)нүктесіне дейін түзу кесіндісін сызу. Сызық түсі Pen.Color әдісімен анықталады.
Rectangle(x1,y1,x2,y2:integer);
(х1,у1)-(х2,у2)- тік төртбұрышын салу. Фигураның ішкі облысының түсі бояу жаққыш (Brush.Color) түсімен анықталады.
Ellipse(x1,y1,x2,y2): integer;
(x1,y1)-(x2,y2)- тік төртбұрышына сырттай сызылатын эллипс не шеңбер сызу. Элементтің ішкі облысының түсі бояу жаққыш түсімен анықталады.
TextOut (x,y: integer; ConstText: String);
(x,y) нүктесінен бастап мәтін жазу
Arc (x1,y1,x2,y2,x3,y3,x4,y4: integer);
(x1,y1)-(x2,y2)- тіктөртбұрышына сырттай сызылған элипс сегментін сызу
|
TGraphic және TPicture класы.
Delphi –да ең манызды орын алатын TGraphic және TPicture класы.
TGraphic-ол абстракты класс, инкапсуляцияланған жалпы қаиеттер және әдістер боп 3 мұра қалдырды : пиктограмма(Ticon), метофайлфы (TMetoFile) және расторового бейне (TBitmap).
TGraphic-тің жалпы ерекшелігі файлдарға сақталынады, берілген екі нақты фарматта.
Пиктограмма файлдарына көбінесе ICO кеңейтпесін пайдалынады.
Метафайл-бұл бейне, ол графиктік құрылғыда берілген арнайлы командалармен салынады, WMF немесе EMF мынадай кеңейтпедегі файлдарда сақталынады.
Интерфейстер
COM технологияда интерфейстер ең маңызды орын алады. (Component Object Model- компаненттік модель обьектісі). Олардың негізгі жұмысы-қасиеттерін жазу, әдістері және оқиғаларды жойылған манинадағы терминдік клиент обьект. Интерфейстің көмегімен клиент программасы обьектіні жоюға арналады, егерде оның өзінің меншік обьектісі болса.
Ескерту: Егерде интерфейс COM/DCOM немесе COBRA технологияда пайдаланылса, онда әдістер stdcall немесе (обьект үшін автоматтандырылады) жазылады.
7-ДӘРІС. Object Pascal тілі
Негізгі ұғымдар;
Мәліметтетрдің қарапайым типтері;
Мәліметтердің құрылымдық типтері;
Өрнектер;
Қрапайым операторлар;
Құрылымдық операторлар;
Ішкі программалар.
Құрама және бос оператор
Құрама оператор дегеніміз- бұл begin … end қызметші сөздерінің арасына орналасқан программа операторларының тізбегі. Құрама операторлар Object Pascal- дың маңызды инструменті болып табылады, өйткені, құрылымдық программалаудың қазіргі технологиясы бойынша программа жазуға мүмкіндік береді.
Begin
….
begin
….
begin
…
end;
…
end;
…
end;
тұтасымен алғанда, begin … end сөздерінің арасына орналасқан барлық операторлар бөлімі бос операторды береді.
Ал бос оператор ешқандай әрекет атқармайды, тек программа жолына «;» белгісі қойылады.
Шартты оператор
Шартты оператор қандай да бір шартты тексеруге мүмкіндік береді, шартты тексеру нәтижесінде тәуелді қандай да бір әрекет орындалады. Сонымен, шартты оператор- бұл тармақталған есептеу процесінің құралы.
Шартты оператордың құрылымы төмендегідей:
If <шарт > Then <1-оператор> else <2-оператор>;
Мұнадғы If, Then, else- қызметші сөздер.
<шарт >- логикалық типті қандай да бір өрнек;
<1-оператор> және <2-оператор>- Object Pascal- дың кез келген операторлары.
Шартты оператордың орындалу алгоритмі төмендегідей. Алдымен, <шарт> шартты өрнек тексеріледі. Егер нәтиже true (ақиқат) болса, онда <1-оператор> орындалады да,<2-оператор > орындалмайды; егер нәтиже false (жалған) болса, онда керісінше <1-оператор> орындалмай,<2-оператор > орындалады. Мысалы,
Var
x, y, max :integer;
begin
…
If x>max then
y:=x;
else y:=max;
…
End;
Бұл фрагменттің орындалуы барысында Х айнымаласының мәні max-нан үлкен болса, онда У айнымалысына Х айнымалысын меншіктейді, кері жағдайда У айнымалысына max меншіктеледі.
Мүмкін болатын ақиқат немесе жалған екі мәннің біріне ие болатын өрнек шартты өрнек деп аталады. Мұндай өрнек айнымалыларды салыстыру операцияларының көмегімен жазылады: <, <= ,> ,>= , <>. Күрделі логикалық өрнектер and, or, not логикалық операцияларының көмегімен алынады.
Мысалы, if (a>b) and (b<>0) then …
Қайталау операторлары
Object Pascal тілінде қайталанатын программалар фрагментін программалауға мүмкіндік беретін үш оператор бар.
For параметрі қайталау командасы, оның құрылымы:
For < қайталау параметрі>:= <Бастапқы мән> to <соңғы мән> do <оператор>;
Мұндағы for, to, do қызметші сөздер (үшін, дейін, орында); <қайталау параметрі> -integer типті айнымалы; <бастапқы мән> және <соңғы мән>- бүтін типті айнымалылар.
<оператор>- Object Pascal-дың кез келген операторы.
Операторлың орындалуы: алдымен <бастапқы мән> өрнегі есептеліп, <қайталау параметрі>:=<бастапқы мән> меншіктелінуі орындалады.Одан кейін төмендегі опреациялар қайталанады:
<қайталау параметрі><= <соңғы мән> шарты тексеріледі;
шарт сақталмаса for операторының жұмысы аяқталады;
<оператор>- операторы орындалады;
қайталау параметрінің мәні бірге артып отырады.
Енді қарастырған екі қайталау операторлары қайталану шарттарын ғана тексереді, цикл қадамының өзгеруіне байланысты емес.
Әзір қайталану командасы While
Бұл оператордың жазылу форматы:
While <шарт> do < оператор>;
мұндағы While, do қызметші сөздер(әзір [шарт орындалатын болса], орында); <шарт>- логикалық типті өрнек; <оператор>- Object Pascal тілінің кез келген операторы.
Егер <шарт> өрнегінің мәні true болса, онда <шарт> өрнегі есептелгеннен кейін <оператор> орындалады да, тексеру қайталана береді. Егер <шарттың> мәні жалған болса ( false), онда while операторы жұмысын тоқтатады.
Таңдау операторы
Таңдау операторы бірнеше әрекеттің ішінен таңдауға мүмкіндік береді. Таңдау жүргізілетін параметр ретіндегі өрнек үшін кез келген реттелген тип алынады (реттелген типке- integer, char, логикалық типтер жатады).
Таңдау операторының құрылымы төмендегідей:
Достарыңызбен бөлісу: |