Edit (tahrirlovchi) – formada matnni tahrirlovchi maydon hosil qiladi.
Label (etiketka) – formada matn yozuv yaratadi.
Button (Tugma) — eng ko‘p ishlatiladigan komponent. Ilovada matn yozuvli
to‘rtburchak tugmalarni yaratish uchun xizmat qiladi.
ListBox (Ro‘yxat) — ro‘xatdan tanlash imkonini beruvchi to‘rtburchak maydon hosil qiladi.
Panel (Panel) — boshqa komponentalarni joylashtirish uchun bo‘sh soha hosil qiladi. Uskunalar panelini yaratish uchun xizmat qiladi.
2.3 Ma‘lumotlar bazasi bilan ishlash (acces dasturi haqida)
Maʼlumotlar bazasi bilan ishlash, maʼlumotlar toʻplamini yaratish, saqlash, tahrirlash va oʻqishni oʻz ichiga olgan dasturlar jamiyatida koʻp qoʻllaniladi. Bu dasturlar orqali maʼlumotlar bazasidagi maʼlumotlarni boshqarish mumkin.
Microsoft Access esa maʼlumotlar bazasi tuzish va boshqa amallarni amalga oshirish uchun foydalaniladigan bir dastur hisoblanadi. Bu dastur orqali maʼlumotlar bazasini yaratish, saqlash, tahrirlash va oʻqish mumkin boʻlib, odatda kichik va oʻrtacha hajmdagi maʼlumotlar bazalari uchun ishlatiladi.
3.Loyiha qism
Loyiha ishlab chiqish bosqichi
File >New>VCL form application dan yangi forma yaratib oldim va DataModule oynasini ham yaratib oldim va ichiga ADOConnectio, ADOTable va DataSource companantelaridan tashlab oldim va D diskga saqlab oldim.
3.1-rasm.
Acces orqali bizga kerakli bo’lgan bazani yaratib olamiz. Bizga .mdb kengaytmali baza kerak bo’ladi. Uning ichiga esa 2ta “student” va “ball” nomli jadvallarni konstruktor orqali yaratib olamiz.
3.2-rasm
Boshlang‘ich qiymatlar bilan to’ldirib olamiz.
3.3-rasm
XE3 ga qaytamiz. Datamodule oynasini qo’shib, uning name ini “db” ga o’zgartirib ichiga adotable, adoconnection va datasurce larni joylab olamiz. Ularning ham nomlarini mos holda qaytadan nomlab olamiz.
3.4-rasm
ADOConnection ni o’zimiz yaratgan bazamizga bog’lab olamiz. ADOTablelar va DataSource larni ham mos holda sozlab olamiz.
Asosiy formamizga qaytib unga DBGrid, BitBtn, DbEdit va Panel lardan zaruriyatga qarab joylab olamiz. Ularni kerakli holatga keltirish uchun bir nechta ishlar qilganimizdan so’ng bu formaning ko’rinishi quyidagicha bo’ladi:
3.5-rasm
“Alt+F11” ni bosib “db” formadan foydalanish huquqini berib qo’yamiz. Keyin DbGridni datasourcesini moslab chiqamiz. Keyin DbEditning “name” larni mos ravishda nomlab qo’yamiz. Ularning ham datasourcelarnini to’g’rilab qo’yganimizdan so’ng formamizda malumotlar ko’rinadi:
3.6-rasm
Dasturimizga 2ta forma qo’shib olamiz. Birini student qo’shishga ikkinchisini baho qo’yishga ishlatamiz. Form3 ni nameni “addStudentForm” deb nomlab olib unga DbEdit, label va BitBtn lardan joylashtirib olamiz. “alt+F11” bosish orqali db dan foydalanish huquqini berib qo’yamiz. Labelning captionlarini, DbEditning datasourcelarni to’g’rilab qo’yamiz. Shundan keyin bizda quyidagi natija bo’ladi:
3.7-rasm
Saqlash tugmasiga ushbu kodni yozdim:
void __fastcall TaddStudentForm::BitBtn1Click(TObject *Sender)
{
db->studentTable->Post();
addStudentForm->Close();
}
Cancel tugmasiga ushbu kodni yozdim:
void __fastcall TaddStudentForm::closeBtnClick(TObject *Sender)
{
db->studentTable->Cancel();
addStudentForm->Close();
}
Shu bilan bu oynadagi ishlar tugadi. Endi asosiy formadagi qo’shish tugmasiga ushbu kodni yozamiz:
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
db->studentTable->Insert();
addStudentForm->ShowModal();
}
Tahrirlash tugmasiga esa ushbu kod yoziladi:
void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
addStudentForm->Caption = "Tahrirlash";
db->studentTable->Edit();
addStudentForm->ShowModal();
}
O’chirish tugmasiga esa ushbu kod yozildi:
void __fastcall TForm1::BitBtn3Click(TObject *Sender)
{
String name = nameEdit->Text;
db->studentTable->Delete();
ShowMessage("'" + name + "'" + " ga tegishli malumot o'chirildi");
}
Bu kod tanlangan ma’lumotni o’chiradi va o’chirilgan studentni o’chirilgani haqida xabar beradi.
Endi form4 ni name ini “addBallForm” qilib olamiz. Unga Label, DbEdit, BitBtn va ComboBox larnijoylab olamiz. Db dan foydalanish huquqini beramiz. DbEditlarni datasourcelarini bog’lab, comboboxlarni itemlarini to’ldirib oldim, captionlarni to’g’rilab olganimdan so’ng shu ko’rinishga keldi.
3.8-rasm
3.9-rasm
Saqlash tugmasiga yozgan kodim fanEditni text iga comboboxda tanlangan fanni, typeEdit ni text iga esa typeCombo da tanlangan turni olib beradi. Student id ni olib s_id ustuniga yozishda dbeditlardan foydalandim.
void __fastcall TaddBallForm::saveBtnClick(TObject *Sender)
{
if (fanCombo->ItemIndex == -1 || typeCombo->ItemIndex == -1 || ballEdit->Text.IsEmpty()) {
ShowMessage("Iltimos, Ma'lumotlarni to'liq kiriting!");
} else {
fanEdit->Text = fanCombo->Text;
typeEdit->Text = typeCombo->Text;
s_idEdit->Text = idEdit->Text;
db->ballTable->Post();
addBallForm->Close();
}
}
Cancelga yozilgan kod:
void __fastcall TaddBallForm::closeBtnClick(TObject *Sender)
{
db->ballTable->Cancel();
addBallForm->Close();
}
Asosiy formaga qaytib, ball qo’shish tugmasiga shu kodni yozamiz:
void __fastcall TForm1::BitBtn4Click(TObject *Sender)
{
db->ballTable->Insert();
addBallForm->fanCombo->ItemIndex = -1;
addBallForm->typeCombo->ItemIndex = -1;
addBallForm->ShowModal();
}
Tahrirlashga:
void __fastcall TForm1::BitBtn5Click(TObject *Sender)
{
addBallForm->fanCombo->ItemIndex = addBallForm->fanCombo->Items->IndexOf(db->ballTable->FieldByName("fan")->AsString);
addBallForm->typeCombo->ItemIndex = addBallForm->typeCombo->Items->IndexOf(db->ballTable->FieldByName("type")->AsString);
addBallForm->Caption = "Tahrirlash";
db->ballTable->Edit();
addBallForm->ShowModal();
}
O’chirishga:
void __fastcall TForm1::BitBtn6Click(TObject *Sender)
{
db->ballTable->Delete();
ShowMessage("O'chirildi");
}
“info” tugmasiga o’zim haqimda malumot kiritib qoydim:
void __fastcall TForm1::BitBtn7Click(TObject *Sender)
{
ShowMessage("To'lqinboyeva Dilnoza\n\t620-23 guruh");
}
Shu bilan loyihamiz deyarli tayyor. Endi buni boshqa kompyuterda ham ishlata olishimiz uchun “project -> options -> c++ linker” dan “dinamic RTL” ni false qilamiz. “project -> options ->packages->Runtime Package” dan “runtime package: ni false qilamiz. Keyin ishga tushirib ko’ramiz.
|