Nisam te bas razumeo. Ovako, imam TForm1 (MainForm) i TForm2.
Na TForm1 sam obradio OnShow:
Code:
//logovanje u aplikaciju
procedure TForm1.FormShow(Sender: TObject);
begin
Form2 := TForm2.Create(Self);
//ako zelimo odustati od logovanja u program
if Form2.ShowModal = mrCancel then PostMessage(Self.handle, WM_CLOSE, 0, 0);
Form2.Free;
end;
Tad mi se pojavi forma za logovanje. Kad u TListBox1 izaberemo korisnicko_ime
onda u TMaskEdit1 se unosi sifra_korisnika, to sam obradio ovako:
Code:
procedure TForm2.MaskEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key = VK_RETURN) and (MaskEdit1.Text <> '') then begin
//pretraga tabele
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM Korisnici WHERE Naziv_Korisnika='+ QuotedStr(ListBox1.Items[ListBox1.ItemIndex])+ 'AND Sifra_Korisnika='+ QuotedStr(MaskEdit1.Text));
ADOQuery1.Open;
//provera ispravnosti sifre za odredjeno lice - korisnika
if ADOQuery1.RecordCount=0 then begin
//ako nije ispravna
ShowMessage('Sifra koju ste uneli nije ispravna!');
MaskEdit1.Clear;
MaskEdit1.SetFocus
end
else
//ako postoji korisnik s takvom sifrom onda:
end;
end;
Ukoliko sifra nije ispravna iz koda se vidi poruka o gresci. Ostalo mi je da
odradim ukoliko je sifra ispravna sta dalje. Da, kad stavim
close posle
else program se zatvara.
Meni treba samo ako je ispunjen uslov(sifra) da se zatvori TForm2 i otvori
TForm1 (MainForm)?