«Телефон анықтамасы» деректер базасының мәліметімен жұмыс істеу үшін подформасы бар форма құру.
Басты менюдің File|New Application командасы арқылы жаңа проекті ашамыз. Caption қасиетін «Информация о людях» деп өзгертеміз. Бұл атау біздің деректер базасының атауы болады.
Форманы MyExunitDB.pas атауымен сақтаймыз, ал проекті MyExampleDB.dpr деп сақтаймыз. Ол үшін File|Save Project As командасын орындаймыз. Онда құжат атауын таңдайтын терезе ашылады, бұнда біз модуль үшін буманы таңдаймыз. Модульге MyExUnitDB деген атау береміз де кейін проектіге MyExampleDB атауын береміз.
Form1 формасына People.db құжатында орналасқан компоненттерді байланыстыру үшін компоненттерді орналастырамыз.
DataAccess парағынан Table компонентін (8-сурет) орналастырып TableName қасиетіне People.db-ны орналастырамыз. Мұнда бағдарлама мен People.db кестесі байланыты. Кейін Table1 компонентінің Active қасиетін True деп орнатамыз. Ол Кестенің мәндерін көрсетеді.
8-сурет – Table1 компонентін орналастыру
Осы беттен DataSource компонентін орналастырамыз. Ол компоненттерді мәліметтермен байланыстырады. DataSource1 компонентінің DataSet қасиетін Table1 деп белгілейміз. Бұдан кейін компоненттер кестедегі мәліметтерге рұқсат алады.
Tel.db кестесіндегі мәліметтермен байланыс орнату үшін алдыңғы пунктегі әрекеттерді орындап, тек Table2 және DataSource2 компоненттері Tel.db кестесімен байланытады да, DatabaseName және DataSet қасиеттері сәйкесінше Table2 және DataSource2 мен байланысты.
Деректер базасының мәліметтерін екі кестеден көрсететін подформасы бар форма құру үшін деректер жиындар арасында байланыс орнатамыз. Ол үшін Table2 компонентін ерекшелеп, MasterSource қасиетіне DataSource1 мәнін орнатамыз. Тышқан тетігі арқылы MasterFields қасиетін активтейміз. Available Index енгізу жолында IDPeopleIndex мәнін орнатамыз (9-сурет), себебі байланыс индекстелген өрістер арқылы жүзеге асады. Кейін сол жақтағы тізімнен IDPeople мәнін және оң жақтағы тізімнен IDPeople мәнін таңдап Add батырмасын басыңыз. Сонымен байланыс орнатылды, ОК батырмасын басыңыз. Нәтижесінде IndexName қасиеті IDPeopleIndex ал байланыста қатысатын IDPeople өріс аты MsterFields қасиетінде көрсетіледі.
9-сурет – Tel.db кестесінің MasterField қасиеті
Формаға деректер базасын көрсететін компоненттерді орналастырамыз. Ол үшін келесі әрекеттерді орындаймыз:
Standart бетінен Label компонентін орналастырып, Caption қасиетін «Фамилия, имя, отчество» деп өзгертеміз.
DataControls бетінен 3 DBEdit компонентін Label1 компонентінің астына қатарынан орналастырамыз. Барлық компоненттер үшін DataSource қасиетін DataSource1, ал DataField қасиетін сәйкесінше Family, Name және SecName деп орнатамыз.
Standart бетінен тағы бір Label компонентін таңдап оны DBEdit1 компонентінің астына орналастырып, Caption қасиетін «День Рождения» деп ауыстырамыз.
DataControls бетінен DBEdit компонентін орналастырамыз. DataSource қасиетіне DataSourcе1 мәнін, ал DataField қасиетіне Birthday қасиетін орнатамыз.
Бұл жлдың оң жағына DataControls парағынан DBCheckBox компонентін орналастырып, Alignment қасиетін LeftJustify, ал Caption қасиетін – «Пол» деп орнатамыз. Кейін оның DataSource қасиетіне DataSource1 мәнін, ал DataField қасиетін тізімнен Sex мәнін таңдаймыз.
Label2 компонентінің астына Standart бетінен тағы бір Label компонентін орналастырып, Caption қасиетін «Комментарий» деп өзгертеміз.
Бұл компоненттің астына DataСontrols бетінен DBMemo компонентін орналастырамыз. Оның өлшемін горизонталь өлшемін бүкіл формаға созып, ал вертикаль өлшемін кішкене қысқартамыз. Оның DataSource қасиетін DataSource1 деп онратамыз, ал DataField қасиетін Notes мәнін таңдаймыз.
DataControls бетінен форманың жоғары оң жағына DBNavigator компонентін орналастырамыз. Оның DataSource қасиетін DataSource1 деп онратамыз.
DataControls бетінен формаға DBGrid компонентін формадағы барлық компоненттерден төмен орналастырамыз. Оның вертикаль өлшемін сәл қысқартамыз. Оның DataSource қасиетін DataSource2 деп онратамыз. Егер жоғарыдағы әрекеттер дұрыс орындалса, онда DBGrid1 компонентінде Tel.db кестесінің мәліметтері шығарылады.
DBGrid компонентінде көрсетілетін өрістер тізімін анықтаймыз. Ол үшін келесі әрекеттерді орындау қажет:
8.1 Тышқан тетігі көмегімен Columns қасиетін активтеп, Editing DBGrid1.Columns кестесінің өрістер тізімінің редакторын шақырамыз.
10-сурет – Бағандарды өңдеудің терезесі
8.2 Бұнда Add батырмасын басамыз. Пайда болған «0-TColumn» жазбасын ерекшелейміз. Объектілер инспекторы көмегімен FieldName қасиетіне Number мәнін орнатамыз. Күрделі Titel қасиеті үшін Caption параметріне Номер мәнін береміз.
8.3 Кестенің өрістер тізімінің редакторының терезесінде Add батырмасын басамыз. Пайда болған «1-TColumn» жазбасын ерекшелейміз. Объектілер инспекторының көмегімен FieldName қасиетіне Type мәнін орнатамыз. PickList қасиетін активтеп, пайда болған текстік редакторда келесі екі жолды енгіземіз:
Дом.
Раб.
Осы әрекеттерден кейін ОК батырмасын басамыз. Сөйтіп біз телефон типін анықтайтын мәндер тізімін анықтадық. Кейін күрделі Titel қасиеті үшін Caption нараметріне Тип мәнін анықтаймыз.
8.4 Кестенің өрістер редакторымен жұмысты аяқтау үшін терезенің шетіндегі стандартты батырманы басу жеткілікті.
9. Standart бетінен формаға Label компонентін DBGrid1 компонентінің жоғары сол жағына орналастырамыз да оның Caption қасиетін Телефоны мәніне ауыстырамыз.
10. DataControls бетінен формаға DBNavigator компонентін орнатамыз. Оны DBGrid1 компонентінің жоғары оң жағына орналастырамыз. DataSource қасиетіне DataSource2 мәнін орнатамыз.
11. Басты менюдің Run|Run командасы арқылы бағдарламаны іске қосамыз.
12. Подформасы бар формаға мәліметтер енгізудің өз ерекшеліктері бар. Оларды белгілеу үшін мәліметтерді формаға енгіземіз. Ол үшін келесі әрекеттерді орындауымыз қажет. Деректер базасының жазбаларындағы навигатордың панелінде «Плюс» батырмасын басыңыз. Бұдан кейін People кестесінде жаңа жазба пайда болады, оған адам жайлы мәлімет енгіземіз. «Фамилиясы, Аты, Әкесінің аты» өрістеріне сәйкес «Арманов» «Канат» «Мурзатович» мәндерін енгізіп, «День рождения» өрісіне 14.01.79 мәнін енгіземіз. «Пол» тетігі қосылған болу қажет. Навигатордың «» батырмасын басамыз. Құрылған жазба People кестесінде сақталады. Адам туралы мәліметтерді телефонды енгізудің алдында сақтау қажет, әйтпесе олар сол адамға сәйкес болмайды, ал деректер базасында артық жазбалар саны өте көп болып кетеді. Пайдаланушы ондай әрекетті орындай алмау үшін DBGrid1 компонентіне мәліметтерді енгізуге және DBNavigator2 батырмасын баскға рұқсат етпеу қажет. Ол үшін келесі әрекеттерді орындау қажет:
12.1.1 бағдарламаның жұмысын тоқтатыңыз. Формадағы DBNavigator1 компонентін таңдап, объектілер инспекторындағы Events қалтасына өтіңіз.
12.1.2 BeforeAction жолында тышқан тетігінің оң жақ батырмасын екі реет шертіп, MyExUnitDB.pas терезесінде келесі процедураны толықтырыңдар:
Form1.DBNavigator1BeforeAction келесі фрагментпен:
if ((Button=nbInsert) or (Button=nbEdit)) then
begin
DBNavigator2.Enabled:=false;
DBGrid1.Enabled:=false;
end;
if Button=nbPost then
begin
DBNavigator2.Enabled:=true;
DBGrid1.Enabled:=true;
end;
12.1.3 Өзгертулерді сақтап бағдарламаны іске қосыңыз.
12.2 Төменгі навигатор панеліндегі «+» батырмасын басыңыз. Tel кестесінде жаңа жазба құрылады. «Номер» ұяшығына телефон номерін енгізейік. «Тип» ұяшығында ашылатын тізімде «дом» типін таңдайық.
12.3 Төменгі навигаторда «+» батырмасын басамыз. «» батырмасын сақтау үшін басу қажет емес, себебі енгізу кезінде мәліметтер автоматты түрде сақталады.
13. Бағдарламаның жұмысын терезі жабу батырмасын басумен аяқтаймыз.
14. File|Save All командасы арқылы барлық өзгертулерді сақтаймыз.
Ескертулер:
Егер бір жазбаны өшіріп тастау керек болса, онда сәйкес жолды белгілеп навигатордағы «-» батырмасын басыңыз. Ал жазбаларға өзгертулер енгізу қажет болса, сәйкес элементті таңдап төменгі навигатордың «Стрелка вверх» батырмасын басу қажет. Барлық өзгертулерді енгізіп болған соң «» батырмасын басамыз.
People кестесінен жазбаны өшіріп тастау үшін біріншіден Tel кестесіндегі сәйкес барлық жазбаларды өшіріп тастау қажет. Ондай өшірулерді қолмен жасамау үшін Form1.DBNavigator1BeforeAction процедурасын келесі фрагментпен толықтыру қажет:
if Button=nbDelete then
begin
Table2.First;
while not Table2.Eof do
begin
Table2.Delete;
end;
end;
Достарыңызбен бөлісу: |