Code du formulaire de connexion Delphi
Comment protéger par mot de passe votre application Delphi

Nora Carol Photographie / Getty Images
Le formulaire principal d'une application Delphi est un formulaire (fenêtre) qui est le premier créé dans le corps principal de l'application. Si vous avez besoin d'implémenter une sorte d'autorisation pour votre application Delphi, vous souhaiterez peut-être afficher une boîte de dialogue de connexion/mot de passe avant que le formulaire principal ne soit créé et affiché à l'utilisateur. En bref, l'idée est de créer, d'afficher et de détruire la boîte de dialogue 'connexion' avant de créer le formulaire principal.
Le formulaire principal de Delphi
Lorsqu'un nouveau projet Delphi est créé, 'Form1' devient automatiquement la valeur de la propriété MainForm (de la propriété globale Application objet). Pour affecter un formulaire différent à la propriété MainForm, utilisez la page Formulaires de la Projet > Options boîte de dialogue au moment de la conception. Lorsque le formulaire principal se ferme, l'application se termine.
Boîte de dialogue Connexion/Mot de passe
Commençons par créer le formulaire principal de l'application. Créez un nouveau projet Delphi contenant un formulaire. Ce formulaire est, de par sa conception, le formulaire principal.
Si vous changez le nom du formulaire en 'TMainForm' et enregistrez l'unité sous 'main.pas', le code source du projet ressemble à ceci (le projet a été enregistré sous 'PasswordApp'):
|__+_| |__+_| |__+_| |__+_| |__+_| |__+_| |__+_| |__+_| |__+_| |__+_| |__+_| |__+_|
Maintenant, ajoutez un deuxième formulaire au projet. De par sa conception, le deuxième formulaire ajouté est répertorié dans la liste 'Formulaires de création automatique' de la boîte de dialogue Options du projet.
Nommez le second formulaire 'TLoginForm' et supprimez-le de la liste 'Auto-Create Forms'. Enregistrez l'unité sous 'login.pas'.
Ajoutez une étiquette, une modification et un bouton sur le formulaire, suivis d'un méthode de classe pour créer, afficher et fermer la boîte de dialogue de connexion/mot de passe. La méthode 'Execute' renvoie true si l'utilisateur a saisi le texte correct dans la zone de mot de passe.
Voici le code source complet :
|__+_| |__+_| |__+_| |__+_| |__+_| |__+_| |__+_| |__+_| |__+_| |__+_|
LogInButton : TButton ;
pwdLabel : TLabel ;
mot_de_passeEdit : TEdit ;
procedure LogInButtonClick(Sender: TObject) ;
La méthode Exécutercrée dynamiquementune instance de TLoginForm et l'affiche à l'aide de AfficherModal méthode. ShowModal ne revient pas tant que le formulaire n'est pas fermé. Lorsque le formulaire se ferme, il renvoie la valeur de ModalResult propriété.
Le gestionnaire d'événements OnClick 'LogInButton' attribue 'mrOk' à la propriété ModalResult si l'utilisateur a saisi le mot de passe correct (qui est 'delphi' dans l'exemple ci-dessus). Si l'utilisateur a fourni un mot de passe erroné, ModalResult est défini sur 'mrAbort' (ce peut être n'importe quoi sauf 'mrNone').
La définition d'une valeur à la propriété ModalResult ferme le formulaire. Execute renvoie true si ModalResult est égal à 'mrOk' (si l'utilisateur a saisi le mot de passe correct).
Ne créez pas MainForm avant de vous connecter
Vous devez maintenant vous assurer que le formulaire principal n'est pas créé si l'utilisateur n'a pas fourni le mot de passe correct.
Voici à quoi devrait ressembler le code source du projet :
|__+_| |__+_| |__+_| |__+_| |__+_| |__+_| |__+_| |__+_| |__+_| |__+_| |__+_| |__+_| |__+_| |__+_| |__+_| |__+_|
Notez l'utilisation du si alors sinon block pour déterminer si le formulaire principal doit être créé. Si 'Execute' renvoie false, MainForm n'est pas créé et l'application se termine sans démarrer.