
- •2.2 Дәрістік сабақтар конспектісі
- •Дәріс №3. Delphi жобасының файлдары. Delphi жобалары. Delphi-де жобаны ұйымдастыру, жобалардың негізгі файлдары
- •Дәріс №4. Тұрақтылар, ауыспалылар, типтік тұрақтылар. Тұрақтылар және тұрақтылар өрнегі.
- •Айнымалылар
- •Дәріс №5. Object Pascal тіліндегі деректер типі.Деректер типінің, хабарландыру типінің жіктелуі.
- •Типтердің келтірілуі
- •Реттелген деректер типі.
- •Бүтін деректер типі
- •Нақты деректер типі.
- •Булевтер деректер типі.
Дәріс №3. Delphi жобасының файлдары. Delphi жобалары. Delphi-де жобаны ұйымдастыру, жобалардың негізгі файлдары
Delphi тіліндегі бағдарламаның құрамына келесі файлдар кіреді: dpr кеңейтілуі бар жобаның файлы және pas. кеңейтілуі бар немесе бірнеше модулдер файлы. Жобаның файлы Object Pascal тілінде жазылған және компелятормен өңделетін бағдарламалау тілінде жазылған және компилятормен өңделетін бағдарлама. Бұл бағдарламаны Delphi автоматты түрде құрастырады және ол бірнеше жолдардан тұрады.
Қосымшаларды жобалағанда Delphi келесі негізгі файлдарды құрады:
Жоба файлы (.dpr) |
Мәтіндік файлды формалар мен модульдер туралы ақпараттарды сақтауға арналған. Мұнда инициализация операторы мен бағдарламаны орындауды енгізу қамтылған. |
Модуль файлы (.pas) |
Құралатын әрбір формаға кодты сақтауға арналған модульдің мәтіндік файлын сәйкес келеді. Delphi-дің көптеген функциялары мен процедуралары модульде сақталынады. |
Форма файлы (.dfm) |
Сіздің формаларыңыз жөнінде ақпаратты сақтау үшін Delphi-де құрылатын екілік немесе мәтіндік файл. Форманың әрбір файлына модуль файлы сәйкес келеді (.pas). |
Жоба параметрлерінің файлы (.dof) |
Файлда жоба параметрінің орнатулары сақталынады. |
Ресурстар файлы (res) |
Бинарлы файл жоба пиктограммалары мен басқа ресурстарды қамтиды. |
Файл топтарының файлы (.bpg) |
Егер сіз жоба топтарымен жұмыс істесеңіз, бұл файл құрылмалы. |
Пакет файл (.dpk) |
Екілік пакет файлы(package). |
Резервті көшірмелер файлы (.~dp, ~df, .~pa) • |
Жоба файлдарына, формаларға және модульдерге арналған резервті көшірмелер файлы. |
Терезелер конфигурацияларының файлы (.dsk) |
Барлық терезелер конфигурациясын сақтайтын файл. |
Диаграммалар файлы (.ddp) |
Код Редакторы терезесінің диаграммаларының бетінде құрылатын диаграммалар файлы. |
Келесі файлдар тобы компилятормен құрылады:
Орындалушы файл (.ехе) |
Орындалушы файл басқаны қажет етпейтін, егер сіз тек DLL, OCX және т.б.сақталынатын кітапханаларды қолданған жағдайда. |
Модульдің объектілі файлы (.dcu) |
Соңғы орындаулы файлға жинақталатын компиляцияланған модуль файлы(.pas), |
Динамикалық қосылатын кітапхана (.dll) |
Егер DLL жобаласаңыз, осы файл құрылады. |
Пакет құрамының файлы (.dcp) |
Пакет тақырыптарын және dcu файлдарының тізімін қамтитын екілік файл. |
Орындалу уақыт пакетінің компилярланған файлы (.bpl) |
Delphi-ң анықталған спецификасы бар DLL кітапхана файлы – орындалу уақыт пакеті. |
Сонымен, Delphi-де қолданыла алатын Windows басқа файлдары:
Анықтама файлы (.hip) |
Бұл Delphi қосымшаларымен қолданылатынWindows анықтамаларының стандартты файлдары. |
Көрініс немесе графика файлдары (.wmf, .bтр, .ico) |
Windows қосымшаларындағы тартымды және достықты қолданушы интерфейсін құруға арналған. |
Сіздің қосымшаңыздың басты мақсаты Object Pascal тілінде коды бар, сіздің бағдарламаңызды орындаудан басталатын және басқа модульдердің инициализациясын қамтамасыз ететін(.dpr) жобаның файлы болып табылады.
Төменде көрсетілген код, егер сіз жаңа жобаны бастағанда, ондағы файлдар мен формалардыөзгертпегендегі жобаны көрсетеді.
program Projectl
uses
Forms, Unitl in 'UNIT1.PAS' {Form 1};
{$R *.RES}
begin
Application.CreateForm(TForm, Form1);
Application .Run (Forml) ;
end.
Бұл код тек екі ғана орындалатын операторларды қамтиды. Оның біріншісі Form1- формасын құрса, екіншісі қосымшаның орындалуын енгізеді.
Жоба файлының жаңа форманы қосуда, атын ауыстырудағы барлық өзгертулері Delphi-мен автоматы түрде қосылады. Егер сізге ағымдағы жоба файлын көру керек болса View Project Source командасын орындаңыз.
Delphi формалары туралы ақпарат екі файлда сақталынады. .dfm кеңейтілуі бар файлда форманың сыртқы көрінісі, оның өлшемі, экранда орналасуы және т.б. туралы ақпарат сақталынады. .pas кеңейтілуі бар мәтіндік файлда берілген формаға сәйкес модуль коды сақталынады. Екі файлдың аты да бірдей.
Сіз нақты формамен байланыспайтын модульдер құра аласыз. Мысалға, үлкен қосымшада тұрақтылары, ауыспалылары, түрлі модульдерде қолданылатын процедуралары мен функциялары бар модулдің болуы пайдалы. Осындай модульдің болуы түрлі модульдердегі сілтемелердің санын қысқартуға мүмкіндік береді. Сонымен қатар, модульді түрлі жобаларда қолдануға болады. Жобаңызда ешбір формамен байланыспаған жаңа модульді құру үшін File | New | Other командасын орындап, New Items терезесінің New бетінде Unit пиктограммасын шертіңіз.
Енді .ехе орындаулы файлдары мен пакетер файлы жайлы айтып кетейік. Delphi-де қосымша программалардың екі түрін құруға болады, бірі - .ехе автономды орындаулы файлдары, екіншісі орындалу уақыты (packages) пакеттері. Соңғысында орындаулы файлдың өлшемі біршама қысқартылады, бірақ сіз қолданушыға орындаулы модульді ғана емес, сонымен қатар пакеттерді қолдайтын файлдарды қамтамасыз етуіңіз керек.
Осы мүмкіншілікті пайдалану үшін Project Options командасын орындаңыз. Ашылған терезе опцияларында Packages беті мен Packages бетінде Built with runtime packages индикаторын қосыңыз. Сол терезеде Default индикаторын, сіздің келешектегі барлық жобаларыңыздың орнату статусын қамтамасыз ететін, біруақытта қосыңыз.
Аяқталған жобаның аяқтау компиляциясы кезінде пакеттерді қолдау опцияларын қосуға ұмытпаңыз, егер сіз қолданушыларға автономды орындаулы модульді жіберсеңіз.
Жаңа жобанының құрылуы мен сақталуы.
Жаңа жобаның құрылуы. Жаңа жобаны бірнеше тәсілдер арқылы құруға болады.
File | New | Application командасы;
Delphi 7 мен 6-ң File | New | Other командалары немесе оған сәйкес батырма. Осы команда таңдалғанда New Items терезесі ашылады.
Жобаның қайта ашылуы мен сақталуы. Жобаны File Save All командасымен немесе жылдам батырма арқылы құруға болады. Жоба файлының аты келесіде орындаулы модуль аты болса, ал модуль файлының аты модульдің өзінің аты болып табылады. Жаңа жоба құрудың нұсқаулары (рекомендации) келесідей:
Жаңа жобаға арналған жаңа каталогты құрыңыз.
File | New | Application командасымен жаңа жобаны құрыңыз.
Жобаның атын және файл атын File | Save All командасымен сақтаңыз.
Келесі жұмыс орындаулары кезінде сіз сақталынған жобаны File | Open Project немесе File | Reopen командаларымен аша аласыздар.
Project.dpr бағдарламасының басты файлының құрылымы
Delphi-де басты файл қосымшалар инициализациясы, формаларды құру мен қосымшаларды енгізу операторларын ғана қамтиды.
Бағдарлама аты жоба сақталынған файл атымен сәйкес келеді. Осы атты қосымшаның орындаулы файлы да иемденеді.
Бағдарлама мәтінінде тақырыптан кейін uses ұсынысыи бар. Бұл ұсыныста модульдер, бағдарламамен енгізілетін жүйелік және модульдер қосымшалары аталып көрсетіледі (барлық формалар қосымшалары).
Unit1.pas модулінің құрылымы. Әр модуль жалпы түрде мынадай құрылымға ие:
unit <модуль аты>;
interface // Модульдің ашық интерфейсі
қасиеті {Мұнда қосылмалы басқа модульдерден рұқсаты бар модульдер, типтер хабарламалары, тұрақтылар, ауыспалылар тізімдері бар}
implementation //модульдің жүзеге асырылуы (реализация)
{Мұнда қосылмалы басқа модульдерден рұқсаты бар модульдер, типтер хабарламалары, тұрақтылар, ауыспалылар тізімдері бар. Мұнда interface бөлімінің функциялары мен процедуралары таратулары, сонымен қатар басқа қосымша таратулары, бұрын жарияланбаған функциялар мен процедуралары болуы керек}
initialization // міндетті емес
<Модульге бірінші рет таянғандағы бір рет орындалатын операторлар>
finalization // міндетті емес
<Модуль жұмысының кез-келген аяқталуында орындалатын операторлар>
end.
Interface бөлімі модульдің сыртқы интерфейсін білдіреді. Сондықтан ондағы қосылмалы модульдер, хабарланған типтер, тұрақтылар, ауыспалылар, функциялар мен процедуралар берілген модульге таянатын сыртқы модульдерге шектерінде рұқсатталынған. Модульдің басты денесін хабарланған функциялар мен поцедураларды тарататын кодтар құрады.
Initialization бөлімі берілген модульге бағдарламаның алғаш таяну кезінде ғана орындалатын операторларды қамтиды. Бұл бөлім міндеттіге жатпайды. Модульдің бастапқы баптауын өндіретін операторлар бөлім құрамына ене алады.
Finalization бөлімі бағдарламаның кез-келген: орта және авариялық аяқталуында тек қана бір рет орындалатын операторларды қамтиды. Бұл бөлім міндеттіге жатпайды. Онда уақытша файлдарды өшіретін, жады ресурстарын босататын – қоқысты тазартатын операторлар орын алған.
Uses ұсынысы (предложение) – модульдердің қосылуы. uses кілтті сөзінен
басталатын, одан кейін үтірмен ажыратылған модульдер тізімі бар жобаға қосылатын және берілген модульде қолданылатын басқа модульдерді анықтайтын ұсыныс.
Code Insight – Код білгірін қолдану
Code Insight сізге қасиеттердің, тәсілдердің, жағдайлардың, аргумент типтерінің аттарын, типтік синтаксистік конструкциялар мен басқаны айтып кетеді. Code Insight екі режимде:автоматты және автоматты емес жұмыс істей алады.
Автоматты режимді сөндіріп Code Insight шақыру мүмкіншілігі бар, Ctrl-Shift-nробел немесе Ctrl-пробел батырмаларын басу, яғни Code Insight мүмкіншілігіне таянатындығыңызға байланысты.
Code Browser – идентификаторы жайлы ақпарат.
Егер Code Insight режимінің автоматты орындалуы берілсе, онда кез-келген ауыспалы немесе функция, әдіс идентификаторына тышқан курсорын әкелгенде автоматты түрде осы элемент хабарламасы, оның типі, модулі, жол номері туралы хабарламаны қамтитын ақпарат пайда болады. Осының барлығы үлкен қосымшаларды өңдеуде болмаса, жай тапсыпмаларда ыңғайсыз, өйткені Code Insight осы ақпаратқа айтарлықтай уақыт құртады. Сондықтан осы мүмкіншілікті сөндіріп, тек қажет жағдайда қосу жөн.
Code Browser идентификаторы туралы Delphi-дің орнатуларының каталогтарында ақпаратты іздеу, келесі реттілікте орындалады:
Project Options командасымен орындалатын Directories/Conditionals бетіндегі Search жобасының каталогы.
Project Options командасымен орындалатын Directories/Conditionals бетіндегі Source жобасының каталогы.
Tools | Environment Options командасымен орындалатын Library бетіндегі Browsing каталогы.
Tools | Environment Options командасымен орындалатын Library бетіндегі к Library каталогы.
Code Browser әлі сақталынбаған жаңа модульдердегі ақпараттарды сақтай алмайды.
Code Explorer - Кодын Зерттеуші.
Code Explorer Кодын Зерттеуші барлық типтер, класстар, қасиеттер, әдістер, басты ауыспалы және басты процедураларды, ашық Код Редакторының модуліндегі, ағашын көрсетеді.
Кодты Зерттеуші терезесі Код Редакторы терезесінде автоматты түрде орнатылады. Бірақ осының барлығы Tools | Environment Options командасымен орындалатын Explorer бетіндегі Automatically show опциясының сөндірілуімен өзгеруі мүмкін. Бұл жағдайда қажет болса,View | Code Explorer командасымен Кодты зерттеушіні шақыра аласыз.
Object Browser –класстарды, модульдерді, типтерді көру.
Қосымшаны жазу мен алып қоюда (отладка) жәрдемдесетін Object Browser құралы болып табылады. Оны View Browser командасымен шақыртады.
Оның сол жақ панелінде Globals (жалпы), Classes (класстар) және Units (модульдер) деген үш беті бар. Details терезесінің параметрі орнатылса, оң жақ панель пайда болады. Осы параметрді Project browser терезесінде тышқанның оң жақ батырмасын шерткенде пайда болатын контексті мәтінде орнатуға болады.
Globals бетінде жобада жарияланған және мұрағатталатын класстар, олардың қасиеттері, тәсілдері жайлы бұралған ақпарат көрсетіледі.
Оң жақ панель сол жақ панельде белгіленген биіктікпен қосымша ақпарат береді. Жалпы жағдайда бұл қосымша ақпарат үш бетте орын алады: Scope – көрініс категориялары бойынша (Private, Protected және т.б.) қасиеттер мен әдістер ақпараттары, Inheritance – мұрағаттау туралы ақпарат, References – сілтемелер. Сілтемелер сол жақ панельде белгіленеген, осы файлда хабарлама жолы бар биіктік хабарламасы файлға бағыты бар жолдарды білдіреді. Сілтемедегі екі шертпе сол жақ панельдің сәйкес элементі жарияланған жолға курсордың ауысуы және Код редакторы терезесіндегі сәйкес файлдың жүктелуін білдіреді.
Ресурстар файлы.
Delphi пиктограммаларды жобаға қосуға арналған ресурстар файлы үшін Windows стандартты форматын қолданады.Осы файлдарды немесе биттік матрицаларды,курсорды,пиктограммалар немесе жолдардағыдай элементтерді қамтитын жеке файлдар.
.dfm кеңейтілуі бар файл, формалар немесе фрейм бейнелеуі мен ондағы компоненттердің орналасуы бар қолданбалы интерфейс файлы болып табылады. Delphi-дің Интеграцияланған өңдеу ортасында жұмыс істегенде қалқымалы менюінің View As Text бөлімінде формаңызды тышқанның оң жақ батырмасын шертіп файлды мәтіндікке ауыстыруға болады. Код Редакторының терезесінде мәтіндік файлды көре аласыз. Онда сіз объектілер бейнелеуін, мысалға Form1 формасы: TForm1 типі мен Tbutton типінің Button1 батырмасы. Әр объектінің тақырыбынан кейін оның қасиетері көрсетіледі. Файлда барлық қасиеттер көрсетілмейді, тек үндеместік мағынасынан ажыратылатыны ғана көрсетіледі. Мысалға, мәтінде Anchors қасиетін таба алмайсыз. Егер сіз жобалау кезінде осы қасиет мағынасын өзгертсеңіз,онда .dfm файлында сәйкестендірілген жол пайда болады. Мысалға, Anchors = [akLeft, akTop, akRight].
.dfm файлының мәтінін редакторлауға болады. .dfm ресурстар файлында мәтін файлын қайта құру үшін Код редакторы терезесінде Қалқымалы менюде View As Form командасын тышқанның оң батырмасын басып таңдаңыз. Осы команда сізді өзгертілген формаға қайта оралтады.(егер сіз мәтінге өзгертулер енгізсеңіз).
.dfm файлы сыртқы көрініс компонентіне жауапты ресурстарды қамтиды. Осы файлдардан басқа Delphi жобасы .res кеңейтілуі бар және жоба файлымен аттас файл ресурстарына ие. Жобалау кезінде ресурстар осы файлда сақталынса, ал компиляция кезінде ресурстар орындаулы файлға қосылады.
Ресурстар файлын, оған биттік матрицалар, курсор, пиктограмалар және жолдар элементтерін қосып, жеке құруға және редакторлауға болады. Графиканы қосу Delphi-дің Интеграцияланған Өңдеу ортасындағы Image Editor бағдарламасымен орындалады. Жолдардың қосылуы модульге resourcestring бөлімінің қосылуымен және керекті жолдың жазбасымен жүзеге асады.
Жарияланған жолдар .res файлында орын алып, мәтінде тұрақты көрсетулер ретінде қолданыла алады. Алайда, ресурстарға тек келесіде бағдарлама мәтінінде қолданылатын жолдар ғана енеді.
Ресурстар файлын .drc мәтін файлына қайта құруға болады, ол үшін оның құрылымын көріп, редакторлау қажет. Мысалға, кейбір функцияларда ресурстар файлындағы жолдар идентификаторын білу қажет.
.drc файлын қосымшаны командалық жолда –gd кілтімен компилярлау немесе (Project | Options командасы) жоба опциясының Linker бетінде қосылған Detailed Map File опциясы арқылы құруға болады. Нәтижесінде жобамен аттас .drc мәтіндік файлы пайда болады. Осы файлды және оның құрылымын Код Редакторы терезесінде ашып,көре аласыздар .Мысалға, егер жобада жоғарыда көрсетілген resourcestring бөлімі болса және ондағы жоллдар бағдарламада қоллданылса, онда .drc файлында келесідей жолдар пайда болады:
#define Ures_NoInform 65520 #define Ures_NoParam 65521 STRINGTABLE BEGIN
Ures_NoInform,"Керекті ақпарат көрсетілмеген"
Ures_NoParam, "Берілген %d параметрлер %d" END
Бөлім STRINGTABLE и BEGIN операторларымен басталатын және END операторымен аяқталатын ресурстар файлының барлық жолдардың кестесін қамтиды. Кесте өте үлкен болуы мүмкін, өйткені ол шақырылатын процедуралармен қолданылатын өзіне жүйелік ресурстардың түрлі жолдарын қамтиды. Көрсетілген мысал бойынша, .drc файлы жолдар номерінің идентификаторы бар #define операторын қамтиды. Осы деректер кейбір функцияларда қолданылады.
Delphi 5-тен бастап ресурстар файлы қосымшалардың басты интернационализациясы болып табылады. Егер сіз қолданушы компьютеріндегі Windows тіліне келтірілетіндей жасау үшін,кодта қолданылатын барлық мәтіндерді resourcestring кілтті сөзінің көмегіменресурстарға аудару керек. Трансляция Менеджері терезесін шақыратын View j Translation Manager командаларын орындау кезінде көрінетін және аударылатын мәтіндер - .dfm мен .drc ресурстар файлының сәйкес көрінісі.
Көріну аймағы мен өмір ұзақтылығының аймағы.
Тұрақтылар,ауыспалылар, функциялар мен процедуралар сияқты элементтер программалары тек көріну аймағында ғана элементтің анықталған орнына байланысты қолданылады. Көріну аймағын қолдануда блок түсінігі қолданылады. Блок келесі хабарландыру бөлімдерінен және келесі құрама операторынан тұрады:
Begin хабарламасы
End операторлары;
Бағдарламаның басты файлында, функциялар мен процедураларда жарияланған тұрақтылар, ауыспалылар, функциялар және басқа элементтердің көріну аймағы өзі жарияланған блокпен шектеледі. Мұндай элементтер жергілікті деп аталады. Interface модуль бөлімінде жарияланған элементтер берілген модульді қолданатын барлық модульдерде қолданылады. Мұндай элементтер басты деп аталады. Төменде көрсетілген кесте элементтің көріну аймағын анықтайтын ережелерді жинайды.
Егер элемент жариялынса ... |
Оның көріну аймағы өшіріледі ... |
Бағдарламаның басты файлында, функциялар немесе процедураларда |
жариялану нүктесінен ағымдағы блок аяғына дейін, оған кіретін барлық блоктарды санағанда. |
interface модулі бөлімінде |
жариялану нүктесінен берілген модуль соңына дейін, uses қосымшасының көмегімен берілгн модульді қолданады |
implementation модулінің бөлімінде, бірақ функциялар мен процедуралар блогынан басқа |
жариялану нүктесінен бастап, implementation бөлімінің соңына дейін, осы бөлімге кіретін функциялар мен процедуралар |
жазбаны анықтауда, яғни өріс жазбасының аты |
жариялану нүктесінен бастап, өрістер типін анықтау соңына дейін |
классты анықтауда, яғни қасиет және әдіс |
жариялану нүктесінен бастап, классты анықтау соңына дейін – берілген класстың барлық мәтіндері мен мұрағаттары |
Егер қойылған блокта сыртқы блок идентификатор анықталмаса, онда қойылған блокта тек алдын ала анықталған идентификатор көрінеді. Мысалға, егер сыртқы блокта In ауыспалысы жарияланса, қойылған блокта In ауыспалысықайталынады, онда жаңа жергілікті ауысу сыртқы ауысумен ортақ заты болмайды. Қойылған блокта тек сыртқы ауысу көрінеді.
Интерфейс бөлімінде кейбір элемент жарияланған, яғни сол арқылы басқа модульде жаңа көріну аймағын қосатын басқа модульде uses ұсынысын қолдану. Бұдан бірінші саналған модульдердегі өзінің көрінісінің жаңа облысы басқа модульдегі іспеттес. Сөйлемдерде uses блок сыртында, ал соңғысы — өзінің ішіндегі кезінде.
Блокта көрсетілген айнымалылар тек сонда көрсетілген емес, бірақ сонда болады. Олар деректер блогында тек берілу кезінде құрылады, басқарма бұл блогты тастап кеткен кезде олар өшірілінеді. Сондықтан да оларға қандайда бір ақпаратты блогқа басқарманы беру аралығында сақтауға болмайды.
Негізгі әдебиет: 1[68-83, 99-107, 816-824]
Бақылау сұрақтары:
1. Delphi жобасы қандай бөліктерден тұрады және барлық ақпарат қайда орналасады?
2. Компилятор жасалынатын файлдардың тобы қандай?
3. Unit1.pas модулі қандай бөліктерден тұрады?