[ mish_ns @ 18.04.2011. 10:43 ] @
Pozdrav svima!
Napravio sam dve forme jednu login i jednu da kažem radnu...
Postavi sam daje login forma startup.

E sad kada korisnik ukuca username i pass i ako su OK, tj. ako postoje u bazi podataka otvara se 'radna' forma.
Ja sam to resio tako sto sam sakrio login formu a prikazao radnu, npr.
Code:

 Me.Hide()
 Radna.ShowDialog()


Zanima me da li je to dobar pristup ili koristite 'radnu' formu kao startup,pozovete Login formu pa ako je sve ok onda zatvarate login formu i nastavljate dalje, ili možda neki drugi pristup.


Hvala.
[ AMD guy @ 18.04.2011. 11:36 ] @
Citat:
E sad kada korisnik ukuca username i pass i ako su OK, tj. ako postoje u bazi podataka otvara se 'radna' forma.


Ja slicno radim, posaljem podatke u bazu izvrsi se stored procedura i ako postoji Username i password procedura vraca rezultate

nesto otprilike ovako, naravno login forma mi je pocetna.
Code (csharp):
 private bool ValidateUserNamePassword(string username, string password)
// konekcija na server, prosledjivanje parametara proceduri

//ako postoji radim ovo
 SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.SingleRow);
             
                // this will return true if a row matching the username and password is found.
                // this means that the user's input is valid
                return dr.Read();
 

i onda u klik eventu radim ovo
Code (csharp):
private void btnLogin_Click(object sender, EventArgs e)
{
            string username = tbuserName.Text;
            string password = tbPassword.Text;

         if (ValidateUserNamePassword(string username, string password))
         {  
           Form1 frm = new Form1();
           frm.ShowDialog();
         }
         else
            {
                MessageBox.Show("Invalid user name or password", "Invalid Login");
                return;
            }
}
 

[ Shadowed @ 18.04.2011. 12:22 ] @
Citat:
mish_ns: Zanima me da li je to dobar pristup ili koristite 'radnu' formu kao startup,pozovete Login formu pa ako je sve ok onda zatvarate login formu i nastavljate dalje, ili možda neki drugi pristup.

Moz' kako 'oces, sve jedno je :)
Osim, naravno, ako u konkretnoj situaciji ne odgovara vise neka varijanta, ali to, jelde, zavisi od te konkretne situacije. U opstem slucaju - sve jedno :)
[ mish_ns @ 18.04.2011. 18:03 ] @
Hvala...

Mislio sam da je mozda bolje da se login forma otvara posle 'radne' zbog ustede resursa.
Ovako su u principu obe forme aktivne, s tim sto je jedna vdljiva a druga ne. Onako bi posle uspesnog logovanja bila aktivna samo glavna.

Kako bi islo da je startup forma radna? (ne mogu sad da probam)
U load eventu te forme ubacim poziv ka login formi i sakrijem 'radnu'.
Ako se uspesno logujem (button click event) samo zatvorim Login formu i opet idem na Radna.Show()?

nesto ovako:
Code:
Radna

Radna_Load()
   Radna.Hide()
   login as new Login()
   login.ShowDialog()

Login
   SQL koji uporedjuje polja za user i pass sa upisom u textbox-evima
   Ako executeReader vraca podatke (HasRows)
   uspeno logovanje
   Radna.Show()
   login.Close()





[ Boris B. @ 20.04.2011. 09:08 ] @
Ne znam kako je u VB-u ali pretpostavljam da aplikacija ima neki entrypoint (neki Program.vb ili sl). Tamo treba da modalno prikazes login formu pre Application.Run() i ako login failuje onda ni ne pozivas Application.Run. Glavna (radna) forma je startup forma u tom slucaju a posle logina ti login prozor ne treba.

Vec je bilo reci o tome, imas ovde kratak kod (C#).
[ SpizaGenije @ 20.04.2011. 11:09 ] @
Ja bih to onako kako ja radim!

Prvo otvori radnu formu, pa preko nje otvaraj login formu kao modalnu (šta će ti login forma sakrivena, a ne zatvorena... bar meni to nema smisla! )
A i Shadowed je bio u pravu... možeš kako god hoćeš!

Elem... evo ti primer (ako se to može tako nazvati1 ):


Code:

    Private Sub frm_pocetna_activated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Activated
            frm_login.ShowDialog ()
    End Sub



Ako staviš npr. da ti se login forma otvara na
Code:
Private Sub frm_pocetna_load.....

desiće ti se da ti se login forma otvori dok radnu nije još iscrtao, jer login formu otvaraš prilikom učitavanja radne forme, a ne posle prikazivanja radne forme...

zato sam i stavio
Code:
frm_pocetna_activated....
[ ravni @ 20.04.2011. 17:04 ] @
Citat:
SpizaGenije: Ja bih to onako kako ja radim! :)
zasto, kada je borisovo resenje daleko cistije i lakse za odrzavanje?
[ SpizaGenije @ 21.04.2011. 07:28 ] @
@ ravni
Iskreno da ti kažem, nisam ni gledao...

Opet ponavljam
Citat:
Moz' kako 'oces, sve jedno je

sto bi rekao Shadowed


[ ravni @ 21.04.2011. 19:59 ] @
ako nista drugo - bar si iskren
Citat:
SpizaGenije:Iskreno da ti kažem, nisam ni gledao...
:)