МАЗМҰНЫ
Кіріспе..............................................................................................................................4
1. Жалпы бөлім..............................................................................................................6
1.1 Берілгендер қоры қосымшасының құрылымы......................................................6
1.2 Мәліметтер қоры қосымшасы қалай жұмыс істейді……………………………..7
1.3 Мәліметтер модулі………………………………………………………………...9
1.4 Мәліметтер жинағын қосу……………………………………………………….10
1.5 TdataSource компонентін құру…………………………………………………...12
1.6 Мәліметтерді кескіндеу…………………………………………………………..16
2. Арнайы бөлім…………………………………………………………………….16
2.1 Есептің қойылу шарты……………………………………………………………16
2.2 Есептің формальды қойылуы…………………………………………………….17
2.3 Алгоритмнің жалпы құрылымы………………………………………………….18
2.4 Программалық модуль құрылымы………………………………………………19
2.5 Форма көріністері…………………………………………………………………20
2.6 Есептің орындалу үрдісі…………………………………………………………23
2.6.1 Берілгендер қорына қол жеткізуге арналған сұхбат терезесін
DataModule формасын пайдаланып құру………………………………………23
DLL құру………………………………………………………………………..37
DLL және берілгендер қорымен жұмыс…………………………………….48
3. Экономикалық бөлім……………………………………………………………..65
3.1 Жобаны экономикалық бағалау…………………………………………………65
3.2 Бағдарламалық қамтамасыздандыруды игерудегі экономикалық тиімділікті есептеу…………………………………………………………………………………66
4. Еңбекті қорғау және техникалық қауіпсіздіктің негізгі шаралары………..71
4.1 Еңбек пен демалысты ұйымдастыруда берілетін бірқатар кеңестер………….75
Мекемені жарықтандыру………………………………………………………76
Мониторға қойылатын талаптар………………………………………………77
4.4 Бағдарламалаушының жұмыс орнына қойылатын талаптар…………………80
4.5 Жұмыс орнындағы бағдарламалаушының атқаратын
4.6 Электр және өрт
4.7 Жұмыс орнындағы температура, қысым, ылғалдық………………………….83
4.8 Төтенше жағдай кезіндегі атқарылатын жұмыс……………………………….83
Қорытынды ………………………………………………………………………….85
Әдебиеттер……………………………………………………………………………87
Кіріспе
Windows ортасында бағдарламаның орындалуын ұйымдастырудың басқа тәсілдері
Delphi бағдарламасы басқа тілдерде жазылған кітапханаларды пайдалана
DLL-дің бағалылығы оларды бағдарлама орындалу барысында
Біздің мақсатымыз - реляциялық қорда сақталатын
Бұл мәліметтермен жұмыс істеу басқарудың ерекше жүйесі –(бағдарламалық
Клиент қосымшасы келесі амалдарды орындау үшін қажет.
1.Мәліметтер серверін қосу, қолданушы аты мен паролін
2.Серверге сұраныстар құрастыру және нәтиже алу.
3.Мәліметтерді қолданушыға ыңғайлы түрде көрсету.Мәліметтерді сұрыптау
4.Мәліметтерді қосу және өшіру, мәліметтер жиынтығы
Бағдарламада осы функциялардың бәрі орындалса, онда
Бағдарламаны компиляциялаған және жинаған кезде
Бағдарламаның жұмысшы терезелері жұмыс барысында әртүрлі
Жобада форманың DataModule , DLL Wizard түрлерін
1. Жалпы бөлім
1.1 Берілгендер қоры қосымшасының құрылымы
Берілгендер қоры қосымшасы мәліметтер қорының кейбір мәліметтер көздерімен өзара
Өзара әрекет деп мәліметтер алу, оларды ыңғайлы форматта
Мәлімет көзі ретінде сол берілгендер қорының өзі, мәтіндік, электрондық
Мәліметтер қорымен жұмыс істейтін қосымшаларды қарастырамыз.
Мәліметтер қоры арнаулы бағдарламалармен қызмет көрсетеді. Ол бағдарлама –
Қолданушының әр-түрлілігіне қарамай мәліметтер қоры қосымшасының жалпы архитектурасы
Қосымша мәліметтерді қабылдау және жөнелту механизмінен, мәліметтерді ішкі түрлендірулер
Қабылдау және жөнелту механизмі мәліметтер көзімен жалғастыруды қамтамасыз етеді.
Мәліметтерді ішкі түрлендіру механизмі мәліметтер қоры қосымшасының ядросы
Қолданушы интерфейсі мәліметтерді көру мен өңдеуді ,сонымен қатар мәліметтерді
Қосымшаның бизнес-логикасы бағдарламада деректерді өңдеу алгоритмдерінен тұрады. Қосымша мен
Бұл бағдарламамен қамсыздандыру мәліметтер қоры көлеміне,шығарылатын есептер
Мәліметтер көзі мәліметтерді және МҚБЖ сақтау орны, мәліметтердің тұтастығы
Delphi-де қосымшалар жасау әдістеріне тоқталамыз.
Жобада келесі сұрақтар қарастырылады:
• Delphi-дегі мәліметтер қоры қосымшасының құрылымы;
• Мәліметтер қоры қосымшаларын құруды қолданылатын базалық компоненттер және
• Мәліметтерді жинақтау түсінігі және оның мәліметтер
• Мәліметтер модулі;
• Мәліметтер қоры қосымшасы бөліктерінің бағдарламалық орындалуы.
1.2 Мәліметтер қоры қосымшасы қалай жұмыс істейді
Мәліметтер қоры қосымшасын құру Delphi-де формадан басталады.Қолданушы интерфейсі кәдімгі
Қосымшада формалар саны кез-келген болуы және кез-келген интерфейсті қолдануы
Кез-келген мәліметтер қоры қосымшасының негізі мәліметтер
Мәліметтер жиынтығы мен визуальды компоненттерді байланыстыру үшін арнаулы компонент
Оның қызметі мәліметтер жиынтығы және олармен байланысққан мәліметтерді
Бұл компонент мәліметтерді визуальды компоненттерге және нәтижелерді мәліметтер
• TData Set класы;
• TData Source компоненті;
• Мәліметтерді көрсететін визуальды компоненттерді.
Қосымшада мәліметтер көзімен немесе аралық бағдарламалық қамсыздандырулармен мәліметтерге қол
Мәліметтермен жұмыс істейтін әрбір компонент ең аз дегенде TData
мәліметтерді көрсету визуальды компоненттермен қосу. TData Source компоненті ағымдағы
TData Source-ң компоненті бірнеше мәліметтерді көрсетудің визуальды компоненттерінің бірнешеуімен
1.3 Мәліметтер модулі
Мәліметтер қоры қосымшасындағы мәліметтер жұмыс істеу үшін арнайы форма
Мәліметтер модулінің қосымшаның кәдімгі формаларына ешқандай қатысы жоқ.
Мәліметтер модулінде тек визуальды емес компоненттер пайдаланылады. Мәліметтер модулін
Мәліметтер модулін құру үшін Delphi-дің бас мәзірі пайдаланылады. Мәліметтер
TDataModule класы TComponent класынан шығатын болғандықтан мәліметтер модуль стандартты
Мәліметтер модульде орналасқан мәліметтер мен басқа жоба модулдерінің компоненттерін
Unit Interface Module;
. . .
Ipmlementation;
Uses Data Module;
. . .
Data Module. Tablel Open;
Пайдалану компоненттерін мәліметтер модульде берудің ыңғайлылығы – кез-келген қасиеттің
1.4 Мәліметтер жиынтығына қосу
Мәліметтер қоры қосымшасының негізі болып мәліметтерге қол жеткізу компоненті
Ол мәліметтер қоры таңдалған кесте негізінде мәліметтер жиынтығын құрады
Мәліметтерге қол жеткізу компоненттерінің бәрі визуальды емес компоненттер.
Жаңа жоба құру үшін NEW Application жарлығын File мәзіріінен
Жаңа жоба формасына мәліметтер жиынтығын инкапсуляциялап, келесі орындалатын амалдарға
1. Компонентті мәліметтер қорынына қосу керек. Ол үшін керекті
2. Компонентке мәліметтер қоры кестесін қосу керек. Ол үшін
3. Компоненттің атын ауыстыру. Бұл міндетті орындауды қажет етпейді,
4. Мәліметтер қоры кестесі мен компоненттер арасындағы байланысты активтендіру.
Сонымен қатар Open әдісі бар, ол мәліметтер жиынтығын ашады,
Мысал: Countru.DB кестесімен жұмыс істейтін мәліметтер қоры қарапайым
ТТable компонентін BDE компоненттер палитрасы бетінен көшіреді. Data base
Table Name қасиеті үшін «COUNTRY» кестесінің атын беру қажет.
Мәліметтер жиынтығы форманы бірінші көрсеткенде ашылып, форманы жапқанда
DemoDBApp жобасының бас мәзірінің Ipmlementation секциясы
Ipmlementation
$R DFM
Procedure TFormI. FormShow(Sender:Tobject):
Begin
Try
Country Table.Open;
Except
ShowMessage(«Table.open errоr»);
End;
End;
Procedure TFormI. Form Close (Sender:Tobject; var
Aktion: TFormClose Aktion);
Begin
Country Table, Close;
End;
End.
Форманы ашқан кезде FormShow өңдеуіш әдісі орындалады. Open
әдісі арқылы оның ішінде мәліметтер жиынтығы ашылады. Қажетті жағдайларда
Мәліметтер қоры қосымшаларымен жұмыстағы қателер көп қиыншылықтар туғызатын болғандықтан,
1.5 TDataSource компонентін іске қосу
Мәліметтер қоры қосымшасын құрудың екінші этапында TDataSource компонентін іске
1. TDataSource компоненті мен мәліметтер жиынынтығын байланыстыру керек.
2. Компонентке басқа ат қою керек. Бұл әрекет міндетті
DemoDBApp қосымшасында CountrySource компоненті Country Table компонентімен байланысқан
Type TDataSetState =(dsInactive,dsBrowse,dsEdit,dsInsert,dsSetKey,dsCalcFiels,dsFilter,dsNEW value,dsOldvalue,dsCurValue,dsBlokReod,dsItennalCalc);
Property State; TDataSetState;
қасиетін пайдаланып анықтауға болады.
Property Enabled: Boolean;
қасиеті арқылы барлық байланысқан компоненттерді қосуға немесе өшіруге болады.
False мәні бойынша компоненттің ешқайсысы жұмыс істемейді.
Property AutoEdit: Boolean;
қасиетінің мәні True болғанда мәліметтер жиынынтығын редактор режиміне жібереді.
Тура солай,
Procedure Edit;
әдісі байланысқан мәліметтер жиынынтығын редактор режиміне жібереді.
Function IslinRedTo(Data Set: T Data Set); Boolean;
әдісі егер Data Set параметріндегі компонент TdataSource-ң осы
Өңдеу әдісі
Type Tdata ChageEvent = procedure (Sender;Tobject;Fied;TCild) of object;
Property OnDataChange: TDataCliageEvent;
Байланысқан визуалды компоненттердің бірінде мәліметтерді өңдеу кезінде шақырылады.
Өңдеу әдісі
Property On UpdateData;TNotifyEvent;
мәліметтер қорындағы өзгерістерді сақтау үшін шақырылады.
Өңдеу әдісі
Property On stateChange: TnotifyEvent;
байланысқан мәліметтер жиынынтығын өзгерту үшін шақырылады.
1.6 Мәліметтерді кескіндеу
Мәліметтер қорының қосымшасын құрудың үшінші этапында қолданушы
Қолданушы интерфейсі мәліметтерді көрсету компоненттері негізінде жасалады. Бұл компоненттер
Мәліметтер қорының компоненттері Tdata Source компонентімен және сол
Компоненттердің басым көпшілігі жалғыз бір өрістегі мәліметтерді көрсетуге арналған.
Мәліметтер қорының қосымшасында TobGrid компоненті мәліметтерді кесте түрінде
Сонымен мәліметтер қоры әрбір визуалды компоненті үшін келесі әрекеттерді
1. Мәліметтер қоры компонентін Tdata Source компонентімен байланыстыру керек.
Мәліметтер қоры бір компонентін Tdata Source-ң бір ғана элементі
2. Мәліметтер өрісін беру керек. Ол үшін TFields типінің
Data Source қасиетін берген соң өріс тізімінен таңдалады Бұл
Мәліметтерді кескіндеу компоненттерінің ішінде TDBNavigator компоненті ерекше орын талады.
DemoDBApp қосымшасында TDBGrid, TDBNavigator және TDBEdit компоненттері қолданылған.
Мәліметтерді кескіндеудің үш компоненті де Tdata Source типінің Country
TDBEdit компоненті Capital өрісінің мәліметтерін кескіндейді және оларды түзеуге
Мәліметтер жиынтығына қосылған барлық мәліметтер қоры компоненттерінде нәтиже
2.Арнайы бөлім
2.1 Есептің қойылу шарты
Серверге SQL тілінде орындалатын сұраныс беретін,
Клиент мәліметтер таңдауға серверге сұраныс жіберсе, онда сервер
Мәліметтер серверіне қосылу, қолданушы аты мен паролін
Серверге сұраныстар жіберу және нәтиже алу.
Мәліметтерді қолданушыға ыңғайлы түрде көрсету. Мәліметтерді
Мәліметтер қосу және өшіру, мәліметтер жиынтығы
Бағдарламада келесі модульдер болатындай етіп
Негізгі орындалатын модуль(қабықша)
Пароль енгізетін сұхбаты бар модуль- негізгі
«Оқушы анықтамасы» сұхбаттық модулі- негізгі
2.2 Есептің формальды қойылуы
2.3 Алгоритмнің жалпы құрылымы
2.4 Программалық модуль құрылымы
2.5 Форма көріністері
1.Басты мәзір формасы
2. Серверге қосылу фоормасы
3. Серверге қосылуын растайтын хабарлама
4. «Білімгер анықтамасы» формасы
5. Код терезесінің диаграмма беті
6 Сеансты аяқтау хабарламасы
2.6. Есептің орындалу үрдісі
2.6.1. Берілгендер қорына қол жеткізуге арналған сұхбат терезесін DataModule
Біздің мақсатымыз- реляциялық қорда сақталатын мәліметтерді
Бұл мәліметтермен жұмыс істеу басқарудың ерекше жүйесі –(бағдарламалық
Мәліметтер серверін қосу, қолданушы аты мен құпия сөзін
2.Серверге сұраныстар құрастыру және нәтиже алу.
3.Мәліметтерді қолданушыға ыңғайлы түрде көрсету.Мәліметтерді сұрыптау
4.Мәліметтерді қосу және өшіру, мәліметтер жиынтығы
Бағдарламада осы функциялардың бәрі орындалса, онда
Бағдарламаны компиляциялаған және жинаған кезде
Бағдарламаның жұмысшы терезелері жұмыс барысында әртүрлі
Windows ортасында бағдарламаның орындалу кодын ұйымдастырудың басқа тәсілдері
Delphi бағдарламасы басқа тілдерде жазылған кітапханаларды пайдалана
DLL-дің бағалылығы оларды бағдарлама орындалу барысында
Бірінші қосылатын және қажетті динамикалық
Біздің бағдарламамызды оның ішінде келесі модульдер
Негізгі орындалатын модуль(қабықша)
Пароль енгізетін сұхбаты бар модуль- DLL- кітапханасы,
«Оқушы анықтамасы» диалогы бар модуль- DLL-дің
Бағдарламаның бұл құрылымының тиімділігі мынада, оны
Form1- ді fMain деп өзгертеміз.
Компонент Қасиет Мән
fmain Caption
Position
WindowsState
BorderStyle
FormStyle Оқу курстары
poScreenCenter
wsMaximized
bsSingle
fsMdTfrom
Формаға TMainMenu компонентін «Standard» бетінен алып қоямыз. Бас
1 сурет Мәзір редакторы
Жиі кездесетін мәзір (үлгі) түрінде сақталады. Мәзірді
МӘЗІР БӨЛІМІ МӘЗІР ПУНКТІ
Жүйе Сервермен байланыс
Сеансты аяқта
Шығу
Көмек
Бағдарлама туралы
2 сурет .Бағдарламаның бас мәзірі
Ажырату сызығы мәзірге пункт атауының орнына «-»
3 сурет. Қосымшаның негізгі формасы
Алдыңғы мысалда берілгендер қорымен жұмыс
Сондықтан Delphi –де визуалды емес компоненттер үшін
Палитрадан кезекпен TDataSource,TDataBase,TQuery және TUpDateSQL таңдап
4 суретте көрсетілген.
4 сурет Компоненттерімен мәліметтер модулі және ObjectTreeView терезесі.
Контекстік мәзірде «StayOnTop»пункті іске қосу арқылы объектілер
DataBase компонентін белгілейміз де оған DataBaseName қасиетін Tutoriual-ға
Ағаш «ары-бері тасымалдау» (drag-and-drop)режимін қолдайды, яғни біз
Бұл жағдайда біз Query1 компонентін DataSource1 мәліметтер
Бұл ағашты алдында айтылғандарды кескіндейді: қосымшада
5 сурет. Мәліметтер модулінің компоненттер ағашы
6 сурет.
Өңделгеннен кейінгі мәліметтер модулі компонентерінің иерархиясы
Session объектісі жобалау кезінде болмайды, ол
Бұл компонентердің анықтамаларын толықтыру керек. SQL сұраныстары
Queryl -
SQL: select * from STUDENT order by person_id
UpdateSQLI -
DeleteSQL delete from STUDENT
insertSQL INSERT INTO STUDENT(firet_name,
last_name, start_date) VALUES(:first_name,:middle_name, :last name,:start date);
ModifySQL update
first_name=:first_name,
middle_name=:middle_name,
last_name=:last^name,
start_date=:start_date
WHERE person__id= :old_j?erson_id;
Мәліметтер модуліне Delphi-дің кез-келген басқа формаларындағыдай бағдарламалық
«Diagram» беті визуалды жобалау құралдарынан тұрады, олар
Компоненттер диаграммаға автоматты түрде шықпайды,
(7 сурет)
7 сурет Мәліметтер модулі диаграммасының редактор
Егер диаграммаға элементті оның барлық «ұрпақтарымен» отырғызу керек
Диаграммаға жазылған компоненттер тіктөртбұрыш түрінде бейнеленеді.
Диаграмма объектісін таңдау инструменті.
Қасиет арқылы байланыс.
«Басшы- » байланысы;
Іздеу түріндегі тип (Lookup).
Комментарийлер блогы.
Комментарийге сілтеме.
Диаграмма компоненттер арасындағы байланысты
Қасиет арқылы байланыс. Бай компоненттердің біреуінің қасиеті басқа
Бұл байланысты осы диаграммада құрамыз. Ол
8 сурет.Диаграммада байланыс құру
Бұл байланыс типі суретте боялған жебелі сызық
«Басты- бағынушы» байланыс. Ол «Master-Detail» типті қатынасымен
«Іздеу » типті байланыс. Іздеу өрісі
Сілтеме. Бұл типі құжаттамалық мақсаттарға арналған.
9 сурет.Мәліметтер модулі диаграммасының соңғы көрінісі
Диаграммада түсініктеме жазылатын мәтіндік блок болуы мүмкін.
Диаграмманың әрбір элементінің келесі бөлімшелері бар контекстік мәзірі болады:
Color
Bring to front
диаграмма элементтері бір-біріне біріккенде болады.
Sent to back
Remove fromdiagram диаграммадағы
Print
Құрған формаңың атын fDM –ге (үнсіз келісім бойынша
Сонымен, қосымшаның екі формасы бар: fMain және
Осы уақытқа дейін біз ешқандай бағдарламалық код
Біздің қосымшаның негізі мәзірінен «Жүйе /сервермен
procedure TfMain.N3Click(Sender: TObject); begin try
with fDM.Databasel do begin
if Connected then Close; Open; end;
StatusBarl.SimpleText:='Байланыс орындалған жоқ,' except
StatusBarl.SimpleText:=
end;
end;
Берілгендер қорына қосылу үшін, мұнда Database1.Open әдісі шақырылады.
Бұл бағдарламалық код try… except жиынтығына (конструкция) енеді
N3Click өңдеушісінің аты негізгі мәзірдің бөлімді
Бұл процедура main модулінің бөлігі болып табылады.
Дәл осылай мәзірдің «Сеансты аяқтау» бөлімі үшін ,
procedure TfHain.N4ClicJc(Sender: TObject); begin
with fDM.Databasel do begin
if Connected then Close; end;
StatusBarl.SimpleText^'OTKnioHeHHe .'
end;
Егер байланыс орнатылса, мәзірдің «шығу» бөлімі
procedure TfMain.N6Click(Sender: TObject); begin
N4Click(Sender); Application.Terminate j
end;
Компиляция жасап, бағдарламаны қайта жүктейміз. «Сервермен
деген жазба пайда болады.
DLL құру
Біздің қосымша қолданатын барлық сұхбат терезелерін
DLL кітапханасы жеке жоба ретінде құрылып,
Delphi мұндай жобаларды арнайы топқа біріктіріп сақтауға мүмкіндік
Delphi-дің негізгі мәзірінен «View/Project manager» бөлімін
нда экран бетінде жобаның менеджер
10 сурет.Жобалардың менеджер терезесі
Бұл терезе басқа терезелерден бөлек
Біз бірде бір топқа кірмейтін жобамен жұмыс
Жобалық топ файлдарының, тышқан батырмасының оң
Енді кіру сұхбаты бар DLL
Жаңа жоба топқа қосылып Project1.dll деген атпен
library Projectl; uses
SysUtils, Classes;
{$R *.RES}
begin
end.
DLL-дің бағдарламалық модулінің құрылымы Delphi-дің қарапайым модуліне
Осы мақсатпен, әрбір DLL-дің экспортталатын процедуралары мен
Мысалы, ішкі бағдарламалар DLL-де орнатылған CreateDialog
exports
CreateDialog name 'CreateDialog';
Project1-ді LOGIN деген атпен сақтаймыз, ол үшін ...\
11-сурет. Login. Dll жобасын қосқаннан кейінгі жобалар менеджерінің терезесі
Біздің dll-дің бағдарламалық жобасы жеке каталогта
Жобалық топ бірбүтін ретінде компиляциялануы мүмкін- Delphi
Build Sooner. Таңдалған жобаны объектінің тармақталу терезесі бір
Build Later. Таңдалған жобаны объектінің тармақталу терезесінде бір
login.dll жобасын proj3-2-ден бұрын компиляциялануы үшін, жоғары
Жобаланатын Dll-дің алдында біз жасаған proj3-1 жобасында
Мұны Windows-тың немесе басқа бағдарламаның стандартты
12- сурет. Жылжытқаннан кейінгі объектінің тармақталу терезесінің
Кіріс сұхбатының модулі жобаның бөлігі болып табылады,
Мысалы, кіріс сұхбаты үшін, жол мынадай түрде берілген:
Application.CreateForm(TfLogin, fLogin);
Енді сұхбат терезесін құру үшін арнайы
fLogin:= TfLogin.Create(Application);
ал қолданғаннан кейін- деструктор көмегімен жою керек:
fLogin.Free;
Ең тиімдісі, барлық осы шақыруларды , артқы қосышалар
Жобаның файлына exports бөлімін қосамыз;
library login; uses
SysUtils,
Classes,
uLogin in 'uLogin.pas' {fLogin};
{$R *.RES> exports
ShowLoginDialog name 'SHOWLOGINDIALOG'; begin end.
ShowLoginDialog функциясын жобаға қазір қосылған uLogin модуліне анықтайық.Бұл
Кіріс сұхбатының көмегімен, қосымша пайдаланушыдан нақты бір
Негізгі қосымшада бірқатар құрылым-record немесе class құрылады,
Бұл құрылымға сілтеме, әдетте, Dll-де процедура немесе
Dll-ден шақырылатын процедура, жұмыс барысында құрылымға енетін
login.dll жобасына жаңа модуль қосыңыз, ол үшін
Delphi жобаға, үнсіз келісім бойынша аты Unit1
Модульге type бөлімін қосып, келесідегідей кластың анықтамасын теріңіз:
type
TLoginData = class
modalResult: TModalResult;
user_id, password: shortstring;
constructor Create;
end;
Бұл кластың мәліметтерді беруге арналған
Конструктор мәтінін тереміз:
constructor TLoginData.Create; begin inherited;
ModalResult:=0; user__id: = ''; password:^'';
end;
Сонымен қатар uses бөліміне Controls модулін
uLoginData-ң соңғы нұсқасы төмендегідей түрде көрінуі
unit uLoginData;
interface uses Controls;
type
TLoginData = class
modalResult: TModalResuIt;
user_id, password: shortstring;
constructor Create; end;
implementation
{ TLoginData }
constructor TLoginData.Create; begin
inherited;
ModalResult:=0;
UBer__id:»'';
passwords'';
end;
end.
Енді uLogin модуліне оралайық. Оны төменде
unit uLogin; interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,
type
TfLogin = class(TForm)
Labell: TLabel; зд Label2: TLabel;
ebUserName: TEdit; ebPassword: TEdit;
btnCancel: TButton;
btnOk: TButton;
procedure FormShow(Sender: TObject};
procedure btnOkClick{Sender: TObject);
procedure btnCancelClick(Sender: TObject); private
{ Private declarations } public
{ Public declarations }
LoginData: TLoginData; end;
procedure ShowLoginDialog(Handle: THandle;
var
fLogin: TfLogin;
implementation
{§R *.DFM}
procedure ShowLoginDialog(Handle: THandle; p:
Application.Handle := Handle;
fLogin:= TfLogin.Create(Application);
fLogin.LoginData:=TLoginData(p);
fLogin.ShowModal;
fLogin.Free; end;
procedure TfLogin.FormShow(Sender: TObject); begin
ebPassword.Text:=''; end;
procedure TfLogin.btnOkClick(Sender: TObject); begin
LoginData.user_id:=ebUserName.Text; LoginData.password:=ebPassword.Text; LoginData.modalResult:=mrOK; end;
procedure TfLogin.btnCancelClick(Sender: TObject); begin
LoginData.modalResult:=mrCancel; end;
end.
Мұнда interbase бөліміне мынадай хабарлама
procedure ShowLoginDialog(Handle: THandle; p:
ал implementation бөліміне- осы процедураны жүзеге асыру:
procedure ShowLoginDialogfHandle: THandle; p:
Application.Handle := Handle;
fLogin:= TfLogin.Create(Application);
fLogin.LoginData:=TLoginData{p);
fLogin.ShowModal;
fLogin.Free;
end;
Бұл процедураның екінші параметрі болып, TloginData класына
public
{ Private declarations }
LoginData: TLoginData;
Алынған сілтеуіш, типті түрлендіруді қолданумен loginData
fLogin.LoginData:=TLoginData(p);
Кластың бұл мүшесі , басқа процедуралар сұхбатынан
«ОК» батырмасын шерткенде , пайдаланушы енгізген
LoginData.user_id:=ebUserName.Text; LoginData.password:=ebPassword.Text;
LoginData.modalResult:=mrOK;
«Болдырмау» батырмасын шерткенде , болдырмау батырмасы шертілгенін
LoginData.modalResult:=mrCancel;
Login.dll жобасын компиляциялап, proj3-2 каталогында
Енді негізгі қосымшадан кіріс
Мәтін мәзірден «Add» бөлімін таңдап, біз жаңа ғана
procedure TfMain.N3Click(Sender: TObject); type
TShowLoginDialog =procedure(Handle: THandle; p:
hLib: THandle;
ShowLoginDialog: TShowLoginDialog;
LoginData: TLoginData; begin
hLib := LoadLibrary('LOGIN.DLL'); if hLib'''+HaskEditl.Text+' "'; end; end;
function TfPersonList.FilterOpts: TFilterOptions; begin
result:=[];
if CheckBox3.Checked then result:=[foNoPartialCompare];
if CheckBox4.Checked then result:=result+[foCaselnsensitive]; end;
procedure Tf PersonList. SetFilter; begin
if CheckBoxS.Checked then with Queryl do begin
FilterOptions:=FilterOpts; Filter:=FilterStr; Filtered:=true; end else
Queryl.Filtered:=false; end;
procedure Tf PersonList. DataSetRef resh; var LocValues: variant; LocNames:
with Queryl do begin
LocNames: = '';
LocValues:^VarArrayCreate ([ 0,Fields.Count-2 ], varVariant); for i:=0 to Fields.Count-2
LocValues[i]:=Fields[i+1].AsString; LocNames:=LocNames+Fields[i+l].FieldName+';'; end;
DisableControls; Close; Open;
Locate(LocNames,LocValues,[]); EnableControls; end;
end;
procedure TfPersonList.CheckBox5Click(Sender: TObject); begin
SetFilter; end;
procedure TfPersonList.Button6Click(Sender: TObject); begin
SetFilter; end;
procedure TfPersonList.SpeedButtonlClick(Sender: TObject); begin
SetMark; end;
procedure TfPersonList.SpeedButton2Click{Sender: TObject); begin
if Queryl.BookMarkValid(BookMark) then Query!.GotoBookmark(Bcokmark)
else
begin
ShowMessage (' Бетбелгі қате ') ;
SpeedButtonl.Enabled:=true;
SpeedButton2.Enabled:-false;
SpeedButton3.Enabled:=false;
end;
end;
procedure TfPersonList.SpeedButton3Click(Sender: TObject);
begin
FreeMark;
end;
procedure TfPersonList.FormShow{Sender: TObject); begin try
Query1.Active:=true; except
ShowMessage('Мәліметтер жиынтығын жаңалауда кеткен қате.');
end;
SpeedButtonl.Enabled:=true; end;
end.
Жобаны компиляциялап, proj3_2 каталогында person.dll файлының көрінетініне көз жеткізіңіз.
Енді негізгі бағдарламада білімгерлер сөздігінің шақырылуын ұйымдастырыңыз.
Бірінші кезекте, ол үшін болашақта сөздіктердің шақырылуын жасау үшін,
Мәзірдің “Білімгер” бөліміне, тек қана қормен активті түрде байланысқанда
14-сурет
“Білімгер” бөлімі үшін өңдеуші құрыңыз:
procedure TfMain.NllClickfSender: TObject); type
TShowPersonList =procedure(Handle; THandle; const DBHandle:
var
hLib: THandle;
ShowPersonList: TShowPersonList; begin
hLib := LoadLibrary('PERSON.DLL'); if hLib end;
var
fMain: TfMain;
implementation uses uDM, uLoginData;
{$R *.DFM}
procedure TfMain. N3C lick {Sender: TObject); type
TShowLoginDialog =procedure(Handle: THandle; p: pointer);
hLib: THandle;
ShowLog'inDialog: TShowLoginDialog;
LoginData: TLoginData; begin
hLib := LoadLibrary('IOGIN.DLL');
if hLib