- Nakon unosa zadatih komponenti naša forma dobiće sledeći izgled:
2. Otvorićemo na nivou forme na događaju OnActivate proceduru čiji je naziv Ucitavanje_ forme i u nju ubaciti sledeći kod:
.
.
//--------Procedura ucitavanja forme------------------- procedure TForm1.Ucitavanje_forme(Sender: TObject); begin Table1.DatabaseName:='c:\sredskol\vezbe\programiranje-2\delphi\baze4'; Table1.TableName:='UcenikA.DB'; Table1.Open; Odustani.Visible:=False; Upisi.Visible:=False; If Table1.RecordCount = 0 Then begin Prvi.Visible:=False; Zadnji.Visible:=False; Prethodni.Visible:=False; Sledeci.Visible:=False; Brisi.Visible:=False; Dodaj.Visible:=True; Odustani.Visible:=True; Upisi.Visible:=True; end; end; .
|
Na početku ove proceduru otvorili smo našu tabelu tj. njeno svojstvo Active programski će biti postavljeno na True . Dugmad Odustani i Upisi postavićemo na nevidljiva. U slučaju ako u bazi nema upisan ni jedan podatak a što nam govori svojstvo RecordCount (broj upisanih slogova u bazu) tada ćemo postaviti nevidljivom dugmad: Prvi , Sledeci , Prethodni , Zadnji i Brisi tj. videće se samo dugme Dodaj .
3. Klikom na taster Prvi i ubacićemo sledeći kod:
.
//--------Procedura pozicioniranja na prvi slog------------ procedure TForm1.PrviClick(Sender: TObject); begin Table1.First; end; .
|
4. Klikom na taster Sledeci i ubacićemo sledeći kod:
.
//--------Procedura pozicioniranja na sledeci slog--------- procedure TForm1.SledeciClick(Sender: TObject); begin Table1.Next; end; .
|
5. Klikom na taster Prethodni i ubacićemo sledeći kod:
.
//--------Procedura pozicioniranja na prethodni slog------- procedure TForm1.PrethodniClick(Sender: TObject); begin Table1.Prior; end; .
|
6. Klikom na taster Zadnji i ubacićemo sledeći kod:
.
//--------Procedura pozicioniranja na zadnji slog------- procedure TForm1.ZadnjiClick(Sender: TObject); begin Table1.Last; end; .
|
7. Klikom na taster Brisi ubacićemo sledeću proceduru:
.
//--------Procedura brisanja sloga ------------------------ procedure TForm1.BrisiClick(Sender: TObject); begin Table1.Delete; end; .
|
Da bi računar tražio potvrdu brisanja sloga na događaj tabele BeforeDelete uneli smo proceduru Potvrda_brisanja čiji je kod sledeći:
.
//--------Potvrda brisanja----------------------------- procedure TForm1.Potvrda_Brisanja(DataSet: TDataSet); begin if MessageDlg('Zelite brisanje?', mtConfirmation, mbYesNoCancel, 0) <> mrYes then Abort; end; .
|
8. Klikom na taster Dodaj ubacićemo sledeću proceduru:
.
//--------Procedura dodavanja novog sloga u bazu----------- procedure TForm1.DodajClick(Sender: TObject); begin With Table1 do begin Insert; Prvi.Visible:=False; Zadnji.Visible:=False; Prethodni.Visible:=False; Sledeci.Visible:=False; Brisi.Visible:=False; Odustani.Visible:=True; Upisi.Visible:=True; DBEdit1.SetFocus; DBEdit1.SelectAll; end; end; .
|
Pozivom ovre proceduru pozivamo Insert metodu na našoj tabeli. Takođe će postati nevidljiva dugmad Prvi, Sledeci, Prethodni, Zadnji i Brisi , dok će postati vidljiva dugmad Odustani i Upisi . Takođe će se pozicionirati kursor na prvo polje unosa tj. redni broj učenika.
9. Klikom na taster Upisi ubacićemo sledeću proceduru:
.
//--------Procedura upisivanja novog sloga u bazu----------- Procedure TForm1.UpisiClick(Sender: TObject); begin If Kontrola_ispravnosti Then Begin Table1.Post; Prvi.Visible:=True; Zadnji.Visible:=True; Prethodni.Visible:=True; Sledeci.Visible:=True; Brisi.Visible:=True; Odustani.Visible:=False; Upisi.Visible:=False; end; end; .
|
Na početku ove proceduru poziva se funkciji Kontrola_ispravnosti koja vraća True ako su polja dobro unesena inače vraća False a kod ove procedure je sledeći:
.
//--------Kontrola ispravnosti polja koja su unesena----------- Function TForm1.Kontrola_ispravnosti():boolean; Var uspeh, s: string; i,gr: integer; begin s:=DBEdit1.Text; val(s,i,gr); If (gr <>0) Then begin ShowMessage('Podatak za redni_broj_ucenika nije dobar'); DBEdit1.SetFocus; DBEdit1.SelectAll; Result:=False; exit; end; s:=DBEdit2.Text; If s='' Then begin ShowMessage('Prezime i ime ucenika prazno!'); DBEdit2.SetFocus; DBEdit2.SelectAll; Result:=False; exit; end; s:=DBEdit3.Text; val(s,i,gr); If (gr <>0) Then begin ShowMessage('Podatak za uspeh nije dobar'); DBEdit3.SetFocus; DBEdit3.SelectAll; Result:=False; exit; end; If (i <1) or (i>5) Then begin ShowMessage('Podatak za uspeh nije u granicama 1-5'); DBEdit3.SetFocus; DBEdit3.SelectAll; Result:=False; exit; end; s:=DBEdit4.Text; If s='' Then begin ShowMessage('Adresa ucenika prazna!'); DBEdit4.SetFocus; DBEdit4.SelectAll; Result:=False; exit; end; s:=DBCombobox1.Text; If s='' Then begin ShowMessage('Mesto ucenika prazno!'); DBComboBox1.SetFocus; DBComboBox1.SelectAll; Result:=False; exit; end; end; .
|
Ako su polja dobro unešena naredbom Table1.Post taj slog biće upisan u bazu a takođe sva dugmad postaće vidljiva izuzev dugmadi Upisi i Odustani .
10. U slučaju ako smo ušli u unos novog sloga i želimo da odustanemo tada pozivamo proceduru koja se dobije klikom na dugme Odustani a njen je kod sledeći:
.
//--------Procedura odustajanja od novog sloga---------- procedure TForm1.OdustaniClick(Sender: TObject); begin Prvi.Visible:=True; Zadnji.Visible:=True; Prethodni.Visible:=True; Sledeci.Visible:=True; Brisi.Visible:=True; Odustani.Visible:=False; Upisi.Visible:=False; Table1.First; end; .
|
U ovom slučaju sva dugmad postanu vidljiva izuzev dugmadi Upisi i Odustani.
11. Za učitavanje slike klikom na sliku poziva se procedura DBImage1Click čiji je kod sledeći:
.
//--------Procedura ucitavanja slike------------------- procedure TForm1.DBImage1Click(Sender: TObject); begin If OPenPictureDialog1.Execute then begin Table1.Edit; DBImage1.Picture.LoadFromFile(OpenPictureDialog1.FIlename); Table1.Post; end; end;
.
|
12. Da bi napisali uspeh učenika opisno na njegovom događuju OnChange ubacili smo proceduru Odredi_uspeh čiji je kod sledeći:
.
//--------Procedura doredjivanja uspeha------------------ procedure TForm1.Odredi_uspeh(Sender: TObject); Var uspeh: string; begin If DBEdit3.Text='1' Then uspeh:='Nedovoljan'; If DBEdit3.Text='2' Then uspeh:='Dovoljan '; If DBEdit3.Text='3' Then uspeh:='Dobar '; If DBEdit3.Text='4' Then uspeh:='Vrlodobar '; If DBEdit3.Text='5' Then uspeh:='Odlican '; Label9.Caption:=uspeh; end;
.
|
13. Na događaj forme OnDestroy ubacili smo proceduru Kraj_programa čiji je kod sledeći:
.
//--------Zavrsetak programa------------------------------ procedure TForm1.Kraj_programa(Sender: TObject); begin Table1.Close; end;
.
|
U ovoj proceduri smo zatvorili tabelu. Inače ako to ne bi uradili jedna grupa podataka tj. onih zadnjih unesenih ne bi bila trajno zapamćena u bazi.
Pozivom programa dobićemo sledeći ekran:
Kompletan kod programa možete preuzeti ovde.