Kod formularza logowania Delphi

Jak zabezpieczyć hasłem swoją aplikację Delphi?

Literowane kostki pisowni słowa

Nora Carol Photography / Getty Images





Główny formularz aplikacji Delphi to formularz (okno), który jest pierwszym utworzonym w głównym ciele aplikacji. Jeśli potrzebujesz zaimplementować jakiś rodzaj autoryzacji dla swojej aplikacji Delphi, możesz chcieć wyświetlić okno dialogowe logowania/hasła przed utworzeniem głównego formularza i wyświetleniem go użytkownikowi. Krótko mówiąc, chodzi o utworzenie, wyświetlenie i zniszczenie okna dialogowego „logowanie” przed utworzeniem głównego formularza.

Główny formularz Delphi

Kiedy tworzony jest nowy projekt Delphi, 'Form1' automatycznie staje się wartością właściwości MainForm (z globalnego Aplikacja obiekt). Aby przypisać inny formularz do właściwości MainForm, użyj strony Formularze Projekt > Opcje okno dialogowe w czasie projektowania. Po zamknięciu głównego formularza aplikacja kończy działanie.



Okno dialogowe logowania/hasła

Zacznijmy od stworzenia głównego formularza aplikacji. Utwórz nowy projekt Delphi zawierający jeden formularz. Ta forma jest z założenia formą główną.

Jeśli zmienisz nazwę formularza na 'TMainForm' i zapiszesz jednostkę jako 'main.pas', kod źródłowy projektu wygląda tak (projekt został zapisany jako 'PasswordApp'):



|_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_|

Teraz dodaj do projektu drugi formularz. Zgodnie z projektem drugi dodany formularz jest wyświetlany na liście „Automatyczne tworzenie formularzy” w oknie dialogowym Opcje projektu.

Nazwij drugi formularz „TLoginForm” i usuń go z listy „Automatycznie twórz formularze”. Zapisz jednostkę jako „login.pas”.

Dodaj etykietę, edycję i przycisk w formularzu, a następnie metoda klasy aby utworzyć, wyświetlić i zamknąć okno dialogowe logowania/hasła. Metoda „Execute” zwraca wartość true, jeśli użytkownik wprowadził poprawny tekst w polu hasła.

Oto pełny kod źródłowy:



|_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_|

LogInButton: TButton;
etykieta pwd: Etykieta T;
HasłoEdytuj: TEdytuj;
procedura LogInButtonClick(Sender: TObject) ;

|_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_|

Metoda Executedynamicznie tworzyinstancję TLoginForm i wyświetla ją za pomocą ShowModal metoda. ShowModal nie powraca, dopóki formularz nie zostanie zamknięty. Gdy formularz się zamyka, zwraca wartość Wynik modalny własność.



Procedura obsługi zdarzenia „LogInButton” OnClick przypisuje „mrOk” do właściwości ModalResult, jeśli użytkownik wprowadził poprawne hasło (w powyższym przykładzie jest to „delphi”). Jeśli użytkownik podał nieprawidłowe hasło, ModalResult jest ustawiany na „mrAbort” (może to być wszystko oprócz „mrNone”).

Ustawienie wartości właściwości ModalResult zamyka formularz. Execute zwraca true, jeśli ModalResult jest równe 'mrOk' (jeśli użytkownik wprowadził poprawne hasło).



Nie twórz MainForm przed zalogowaniem

Teraz musisz tylko upewnić się, że główny formularz nie został utworzony, jeśli użytkownik nie podał poprawnego hasła.

Oto jak powinien wyglądać kod źródłowy projektu:



|_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_|

Zwróć uwagę na użycie jeśli to inaczej blok, aby określić, czy należy utworzyć formularz główny. Jeśli „Execute” zwraca wartość false, MainForm nie jest tworzony, a aplikacja kończy działanie bez uruchamiania.