Delphi ортасындағы модулдер типіне түсінік


Жұмыс түрі: Реферат
Тегін: Антиплагиат
Көлемі: 12 бет
Таңдаулыға:
Жоспар
Кіріспе
Delphi ортасындағы модулдер типіне түсінік
- Модулдердің бір-бірімен байланысу қасиеттері
- Модулдердегі жарияланған объектілерге қол жеткізу функциялары
- Өріс қасиеттері
Қорытынды
Қолданылған оқулықтар тізімі
Кіріспе
Модулдер - программаның жеке бір бөліктерін орналастыруға арналған арнайы программалық бірлік. Барлық программа модулдерінің құрамындағы программалық кодтың көмегімен тұтастай дерлік іске асырылады.
Модулдер - орындалатын бөлімнің (интерфейстік) әр түрлі компоненттерінен тұратын автономды компиляцияланатын жеке біртұтас программалық бірлік. Бұл компоненттерге айнымалылар, типтер, тұрақтылар (константалар), процедуралар мен функциялар және тағы да басқалар жатады. Интерфейстік бөліктердегі объектілердің пайда болуы негізгі программа және басқа да модулдермен тікелей байланыс орнатуды жүзеге асыруға мүмкіндік береді. Ал, процедуралар мен функциялардың денесі пайдаланушыға көрінбейтін модулдердің орындалатын бөліктерінде орналасады. Сондықтан модулді біз программаның жеке бір бөлек, өз бетінше бөлім ретінде қарастыра аламыз. Өйткені әрбір жаңа форма құрылған сайын жаңа бір модуль құрылып отырады. Модуль айнымалы, тұрақты, кішігірім программа және тағы да басқалары сияқты әр түрлі программа элементтерін өзіне жазуға арналған. Әр жеке модуль pas кеңейтулері бар жеке бір файлда болады. Файл аты модуль атымен сәйкес келуі керек.
Программада үнемі бір ғана емес, бірнеше кейбір кездерде тіпті одан да көп ондаған формалар және олармен байланысқан модулдер де құрылуы мүмкін. Delphi ортасындағы Delphi программасының компиляциясы кезінде әр жеке модуль үшін PAS, DFM, DCU кеңейтулері бар файлдар құрылады:
● PAS файлы - программа кодының терезесінен алынған мәтін
көшірмесінен тұрады;
● DFM файлында - форма терезесінің құрамындағы деректер сақталады;
● DCU файлында - PAS және DFM файлдарынан алынған мәтінді
машиналық инструкцияға айналдырудан алынған нәтиже болады.
DCU файлы компилятор арқылы құрылады және базаны EXE кеңейтулері бар басқа бір жүктеу мүмкіндігін жүзеге асыратын файлға айналдыратын компоновщиктердің жұмысы үшін маңызды әрі қажет базаны береді. Delphi ортасындағы модулдер рөлі жекелеген компиляция механизмімен ғана шектеліп қалмайды.
Delphi тіліндегі модулдердің ең кең таралған типі болып форма табылады (FORM) . Формамен модуль тікелей байланысқан. Сондықтан модуль-форма түсінігі кең таралған.
Delphi ортасындағы модулдер типі.
Модуль - форманың интерфейстік бөлімінде сәйкес терезелік кластар үшін кез-келген объектің жариялауы болады. Мысалы, біздің оқу программамыз Tfm Example модуль класының және fm Example объектісінің жариялылығынан тұрады. Delphi ортасындағы модулдердің интерфейстік бөлімі жалпы жаңа бір кластың жариялылығынан тұрады. Сонымен қатар Delphi ортасы автоматты түрде жаңаланып отырады. Объектілер жинағындағы модулдер типінің көптеген түрлері диалогтық терезелердің құрылуы үшін дайындалған дайындамалардан тұрады. Мұнда формадан басқа көрінетін терезелермен мүлде байланыспаған модулдер де болады. Оларға жоғарыда қарастырып өткен жалпы белгіленген модулдерден басқа деректер модулдері, динамикалық-кітапханалар модулдері, пакеттер және ағын модулдерін де жатқызуға болады.
Модулдер тақырыбы және олардың бір-бірімен байланысы.
Модуль тақырыбы Unit тыйым салынған сөзінен жәнекелесі модуль атауынан тұрады. Delphi ортасының дұрыс жұмыс істеуі үшін және өте көлемді программаларды өңдеуді жеңілдететін құралдарды қосу мүмкіндігін тудыру үшін бұл модулдің бастапқы мәтіні орналасқан дискілік файл атымен сәйкес келуі керек. Мысалы, UnitGroup атты тақырып берілген болсын. Сонда сәйкесінше модулдің бастапқы мәтіні Group. pas дискіліку файлында орналасқан болуы керек. Модулдер аттары негізгі программамен және басқа да модулдермен байланысына қызмет көрсетеді. Мұндай байланыс арнайы орнатылады: Uses <модулдер тізімі> . мұндағы Uses -тыйым салынған сөз ; <модулдер тізімі> -байланыс орнататын модулдер байланысы. Тізім элементтері
Болып бір-бірінен үтір арқылы ажыратылған модул аттары табылады. Мысалы, Uses, Windows, sysUtils, MyUnit және тағы басқалары:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *. dfm}
end.
Егер Uses жариялылығы қолданылса, онда ол негізгі программаның жазылу бөлімін ашып береді. Модулдер басқа модулдерді қолдана алады. Модулдердегі Uses Interface тыйым салынған сөзінен кейін немесе Implementation cөзінен кейін қолданылады.
Модулдердің интерфейстік бөлімі.
Бұл бөлім Interface тыйым салынған сөзімен ашылады. Интерфейстік бөлімде модулдердің басқа модулдерге немесе негізгі программаға жетуіне қажетті барлық глобалді модулдер объектілерінің жариялылығынан тұрады. Бұларға жататындар: айнымалылар, типтер, тұрақтылар, процедуралар мен функциялар және тағы басқалар. Интерфейстік бөлімдердегі ауқымды түрдегі кішігірім программаларды жариялаған кезде тек қана олардың тақырыптары көрсетіледі. Мысалы,
unit Cmplx;
interface
type
Complex = record
re, im:real;
end;
function AddC(x, y :Complex) :Complex;
function MulC(x, y :Complex) :Complex;
Егер төменде басқа модулдерге ұсынылған сөйлемді жазсақ, онда Complex типі мен AddC және MulC( бұлар Cmplx модулдерінен алынған) процедуралары оған қол жеткізе алатындай дәрежеде бола алады.
Uses Cmplx;
Орындалатын бөлімі.
Бұл бөлім implementation тыйым салынған сөзімен басталып және интерфейстіік бөлімде жарияланған кішігірім программалардан тұрады.
Программаларда модулдер үшін локалді объектілер жариялануы мүмкін. Оларға көмекші типтер, тұрақтылар, айнымалылар және кішігірім программалар, сонымен қатар егер қажет болатын жағдай туындаса, онда белгілер жатады. Модулдің интерфейстік бөліміндегі жарияланған программалардың жазылуына негізделген орындалатын бөлімдерде формалді айнымалылар тізімін көрсетуге болатын белгілі бір тақырып болу керек, өйткені олар алдын-ала интерфейстік бөлімде жазылған болатын . Бірақ егер кішігірім программалар тақырыптары толық түрде келтірілген болса, онда тізімі бар формалді параметрлері мен нәтижелері интерфейстік бөлімде жарияланған тақырыптармен сәйкес келуі керек. Мысалы,
unit Cmplx;
interface
type
Complex = record
re, im:real;
end;
function AddC(x, y :Complex) :Complex;
function MulC(x, y :Complex) :Complex;
implementation
function AddC(x, y :Complex) :Complex;
begin
. . .
end;
function MulC; // Параметрлер тізімдерінің қайталануынсыз кішігірім программалардың жазылу варианты//
begin
. . .
end;
end.
Кішігірім программалар тақырыптарын қысқа түрде жарияланатындай етіп келтірген кезде (алдыңғы мысалдардағы function MulC функциялары) параметрлер тізімі программалар тақырыпшаларындағы алгоритмнің жүзеге асырылу деталдарына дейін түсінуді және кодты оқуды тікелей жеңілдетуге көмектеседі. Орындалатын бөлімдегі кішігірім программалар тақырыптарын дәл көрсету үшін кодтық редактор мүмкіндіктерін пайдаланамыз: интерфейстік бөлімдегі кішігірім программалар тақырыптарының кез-келген бір жеріне курсорды орнатып, Ctrl+shift+C клавишаларын бассақ -кодтық редактор модулдердің орындалатын бөлімінде кішігірім программаларды құрып үлгереді. Тақырыптардың қайталануы орындалатын бөлімде дәл және толық болу керек. Егер біз келесі тақырыпты қолданған болсақ, онда компилятор интерфейстік бөлімдегі барлық функциялардың жарияланған тақырыптарымен мүлде сәйкес келмейтіндігі туралы тез арада белгі берер еді. (Екінші параметрдің Y аты болу керек) : function AddC(x, z :Complex) :Complex;
begin
. . .
end;
Инициалдану және аяқтау бөлімдері.
Модулдердің бұл бөлімдері көбінесе initialization және finalization бастаушы сөздерімен бірге құрылмауы да мүмкін. Инициалдану бөлімінде негізгі программадағы басқаруды жеткізгенге дейін орындалатын және оның жұмысын дайындау үшін қолданылатын операторлар орналасады. Мысалы, олардағы айнымалылар инициалдалынып, бізге қажетті файлдар ашылуы мүмкін.
Аяқтау бөлімінде негізгі программа жұмысын аяқтағаннан кейін орындалатын операторлар көрсетіледі. Оларда файлдар жабылады, сонымен қатар белгіленген программадағы ресурстар босатылады.
Егер инициалдалынған бөлімдерде бірнеше модуль болатын болса, онда бұл бөлімдер бас программаның uses сөйлемінде модулдер атауларының ретімен бірінен кейін бірі тізбектелініп орындалады. Ал, егер бірнеше модулдерде аяқталу бөлімдері бар болатын болса, онда бұл бөлімдер бас программаның uses сөйлемінде модулдердің атаулары кері түрде орналасып, олар рет-ретімен бірінен кейін бірі тізбектелініп орындалады.
Модулдердегі жарияланған объектілерге қол жеткізу.
Біз мысалға комплекстік сандар арифметикасын іске асыратын модуль құрайық делік. Ал, мұндай арифметика стандартты Паскаль тілінде де, Delphi тілінде де қарастырылмаған. Бірақ тек Delphi тілінде ғана комплексті сандары бар операциялар жүзеге асырылатын (Source\Rtl\Common\VarCmplx. pas модулі Delphi каталогында орналасқан) . Осындай операцияларды жүзеге асыратын пайдаланушы варианты енгізілген болатын. Комплексті сандар арифметикасы төрт түрлі функциялар арқылы жүзеге асырылады:
unit Cmplx;
//
interface
//
type
Complex = record
re, im:real;
end;
function AddC(x, y :Complex) :Complex;
function SubC(x, y :Complex) :Complex;
function DivC(x, y :Complex) :Complex;
function MulC(x, y :Complex) :Complex;
const
C:Complex =(re:0. 1; im:-1) ;
//
implementation
//
function AddC(x, y :Complex) :Complex;
//Комплексті сандардың қосындысы
begin
Result. re:=x. re+y. re;
Result. im:=x. im+y. im
end; // AddC
function SubC(x, y:Complex) :Complex;
//Комплексті сандардың айырмасы
begin
Result. re:=x. re-y. re;
Result. im:=x. im-y. im
end; // SubC
function MulC(x, y:Complex) :Complex;
//Комплексті сандардың көбейтіндісі
begin
Result. re:=x. re*y. re- x. im*y. im;
Result. im:=x. re*y. im+x. im*y. re
end; // MulC
function DivC(x, y:Complex) :Complex;
//Комплексті сандардың бөліндісі
var
z:real;
begin
z:=sqr(y. re) +sqr(y. im) ;
//z=0 болған кезде программаны қорғау:
try
Result. re:=(x. re*y. re- x. im*y. im) /z;
Result. im:=(x. re*y. im+x. im*y. re) /z;
Except
Result. re:= 1. 1e309;
Result. im:= 1. 1e309;
end;
end{DivC};
end.
Осындай модуль құру үшін File-New-Unit командасын таңдап алу керек. Модуль мәтінін CMPLX. PAS файлында сақтау қажет: файл аты модуль атымен сәйкес болу шарт. Тек қана осы жағдайда Delphi автоматты түрде модулді таба алады және оның жаңаланып отыратындығын бақылай алады. Модулдер құрылғаннан кейін оның атын типтер, айнымалылар, тұрақтыларкішігірім программалар қайталап құрылған кезде қолданылатын сол модулдің uses сөйлемінде нақты көрсету қажет. Біз қарастырып отырған модулдегі тип - Cоmplx; кішігірім программалар- AddC, SubC, DivC, MulC және С тұрақтысы.
Мысалы, bbRun батырмасын әр басқан сайын оқу программасының барлық жоғарыда келтірілген 4 түрлі арифметикалық әдістерді орындайтын кездейсоқ комплексті сандар жұптары құрылады. Сонда bbRunClick өңдеушісі мынандай түрде болу керек. (Source\Chap-11\Complex\Complx. dpr жобасы) :
Implementation
Uses Cmplx;
{$R *. dfm}
procedure TForm1. bbRunClick(Sender: TObject) ;
var x, y, z:Complex;
procedure Output(Operation:Char) ;
// Қажетті іс-әрекеттерді жүзеге асырады және одан нәтиже шығарады
// mm Output
var S:String;
begin
Case Operation of
'+':z:=AddC(x, y) ;
'-':z:=SubC(x, y) ;
'*':z:=MulC(x, y) ;
'/':z:=DivC(x, y) ;
end;
S:='('+FormatFloat('+0. ; -0. ', x. re) +
FormatFloat('+0. j; -0. j', x. im) +') '+Operation+
'('+FormatFloat('+0. ; -0. ', y. re) +
FormatFloat('+0. j; -0. j', y. im) +'='+
FormatFloat('+0. ; -0. ', z. re) +
FormatFloat('+0. j; -0. j', x. im) ;
mmOutput. Lines. Add(S) ;
end; //Output
begin // bbRunClick
x. re:=Random;
x. im:=Random;
y. re:=Random;
y. im:=Random;
Output('+') ;
Output('-') ;
Output('*') ;
Output('/') ;
mmOutput. Lines. Add('') ;
end;
end.
Орындалатын бөлімнің ең басындағы Cmplx uses сілтемесіне көңіл аударайық. Дәл осы Cmplx модулінің объектісіне bbRunClick өңдеушісіне қол жеткізе алады. Бұл сілтемені Delphi ортасының көмегімен қойамыз:
бас менюдегі File-Use Unit командасын таңдап алып және пайда болған терезеде Cmplx атты модулге апарып басып қалсаңыз шыға келеді.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ExtCtrls;
type
TfmExample = class(TForm)
Panell:Tpanel;
bbRun:TbitBtn;
bbClose: TbitBtn;
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmExample: TfmExample;
implementation
{$R *. dfm}
end.
Міне осындай Delphi тілінде жазылған мәтіннің жобалаушы файлдардан ерекшелігі -ол программист программаға қажетті функционалдықтарды дәлме-дәл келтіре отырып, сонымен қатар оны өзгерте алуында.
Өріс қасиеттері
Әр кестенің өз құрылымы бар. Құрылым оның өрістер құрамы мен олардың типтерінен тұрады. Өрістің негізгі қасиеттері - оның типі мен өлшемі.
Access құрылған кестенің өріс қасиеттерін автоматты түрде орнатып қояды. Қажет болса, оны қолдан өзгерту де, ал жаңа кесте үшін қолдан өзгерту де мүмкін. Түрлі типті өрістердің қасиеттері әр түрлі. Өріс типі таңдалған кезде оның қасиеттері Конструктор режимі терезесінің төменгі бөлімінде көрінетін Жалпы қондырмасын енгізіліп қойылады. Access өріс өлшемі үшін стандартты 50 санын орнатқан. Өлшемді 1 мен 255 аралығындағы (1-255) символдар тізбегінен тұратын етіп алуға болады. 50-ді қалдыруға не өріс ұяшығына ендірілетін берілгендердің ең ұзыны сиятындай етіп, басқа санды, 15-ті енгізу де мүмкін.
Мәтіндік типті өріс үшін басқа қасиеттерді орнату міндетті емес. Мысалы, Өріс форматы . Мұнда ескертетін жайт - қасиеттер құрамында «Қолтаңба» (подпись) да бар. Ол - формамен жұмыс істеу кезінде Access автоматты түрде меншіктейтін өрістің екінші атауы.
Сандық типті өріс қасиеттерін орнату. Сандық өрістер бүтін немесе нақты сандар ендірілетін өрістер болып екіге бөлінеді.
Жаңа құрылатын кестеде сандық өріс құру немесе өрісті күйге келтіру үшін қондырмадан өріс өлшемін, өріс форматын (қажет болса, ондық таңбалар санын) орнатып қою керек. Олардың тізімін экранға шығару үшін сәйкес қатардың шертілуі тиіс. Қатардың оң жағында тілсызық түймесі пайда болады. Оны шертіп, көрінген тізімнен қажеттісін таңдау керек. Мысалы, өріс өлшемі үшін экранға шығарылған тізімнен Бүтін (Целое) қатарын шерту (тізімде көрінген Байт (байт) - [0; 255], Бүтін (Целое) - [-32708; 32767], Ұзын бүтін (Длинное целое) - [-2147483648; 2147483647], Жылжымалы нүктелі (С плавающей точкой (4 байт) ) - [-1. 401298Е-45; 3. 402823Е+38] аралықтарында сақталатын сандар) .
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz