Idealny sposób na formę logowania

0

Więc tak: jest sobie główna forma i forma logowania.
Dwa warianty ktróe testowałem maja swoje wady:

  1. W OnShow głownej formy daje
 if formLog.ShowModal <> mrYes then 
  formMain.Close;
//dalsze instrukcje przygotowujace po pomyslnym logowaniu

Ten sposob dziala, pokazuje sie forma logowania i steruje na niej ModalResultem, ale ma taka wade, ze nie widac w pasku zadan, aplikacji. Czyli gdy przykryjemy forme logowania, to nie ma mozliwosci klikniecia sobie w pasku na aplikacje i przywrocenie jej Focusa (trzeba inne aplikacje pochowac).

  1. ustawilem na formie logowania i głownej- propercje Visible := True.
    Wiec naraz sie wyswietlaja obie formy (glowna forme daje Enabled := False).
    Po pomyslnym zalogowaniu, daje Close formy logowania.

Generalnie ten sposob dziala dobrze, tylko gdy steruje taka aplikacje na pulpicie zdalnym przez VPN, to czesto forma logowania nie znika :-P Wiem, bardzo dziwne to jest, ale tak jest.... Na lokalu zawsze dziala fajnie.

0

dwa ładne sposoby:

  1. jesli aplikacja jest mdi to mozesz na samej mainformie zrobic panel logowania ktory znika po zalogowaniu i dblokowywuje pozostala funkcjonalnosc..

  2. zamiast kombinowac z visible form.. sterowac ioch tworzeniem.. wywalic autokreowanie i w dpr zrobic i logowanie i kreowanie maina..

       fLogin := TfrmLogin.Create(Application);
       try
         if (fLogin.ShowModal() = mrOk) then begin
             MainFormClass := TFormClass(GetClass('TMainForm'));
             Application.CreateForm(MainFormClass, MainForm);
             Application.Run;
         end;
       finally
         fLogin.Free();
       end;
    
0

No drugi sposob sprawdzilem i nie powiem: elegancko dziala, bez kombinacji.
Tylko dam Free formy logowania predzej, zaraz po modal resulcie bo w debugerze widze ze dopiero po zamknieciu maina, sie zwolniala forma logowania.

A co do MDI, to nie bardzo jestem obeznany, zawsze tylko zwykle formy klepalem(File->New Form Delphi_. O co w tym naprawde chodzi ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1