Equivalent de la fonction Inputbox pour confirmer un mot de passe [Résolu]

Wurzag 3 Messages postés lundi 3 avril 2006Date d'inscription 25 mai 2008 Dernière intervention - 24 mai 2008 à 19:34 - Dernière réponse : Wurzag 3 Messages postés lundi 3 avril 2006Date d'inscription 25 mai 2008 Dernière intervention
- 25 mai 2008 à 23:40
Bonjour,

Tout d'abor merci d'avance a ceux qui me lirons et peut-être m'aideron ;)

Mon problème : Je souhaite faire une confirmation de mot de passe. Et j'aimerais savoir s'il existe un équivalent de la fonction Inputbox qui est très pratique pour cela. Car l'inputbox ne me permet pas de cacher le mot de passe en remplacant le test par d'autre caractère.

En gros : Y a-t-il un équivalent ou bien dois-je créé une nouvelle form pour créé moi même ma fenêtre de confirmation grace a la propriété PasswordChar d'un Edit ?

Merci d'avance pour vos réponse.
Afficher la suite 

8 réponses

Répondre au sujet
Bacterius 3869 Messages postés samedi 22 décembre 2007Date d'inscription 3 juin 2016 Dernière intervention - 24 mai 2008 à 23:54
+3
Utile
Bonjour,
il n'existe pas à ma connaissance de fonction pour afficher une fiche d'entrée de mot de passe. Néanmoins, Borland à pensé à nous et a implémenté une sympathique fiche préfaite : va dans Fichier => Nouveau => Autre puis cherche dans l'onglet "Dialogues" puis sélectionne "Dialogue Mot de Passe".

CAD créer une nouvelle fiche, ce que tu voulais éviter je crois :/
C'est vrai que c'est pas pratique et qu'une fiche est encombrante.
Tu peux aussi essayer de créer ta propre fonction qui afficherait une InputBox, avec protection et masque du mot de passe (regarde le code de InputQuery/Box ...)

J'espère t'avoir aidé !

Bonne chance ...

Cordialement, Bacterius !
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Bacterius
florenth 1105 Messages postés dimanche 1 août 2004Date d'inscription 17 août 2008 Dernière intervention - 25 mai 2008 à 11:34
+3
Utile
Salut !

En utilisant CreateMessageDialog, tu peux créer dynamiquement une fiche qui contiendra ce que tu veux dedans, donc par exemple un TEdit avec PasswordChar = '*'.

De toutes façons, un inputbox reste une form.
L'avantage de ma méthode par rapport à la fiche "traditionnelle", c'est que celle-ci ne reste pas en mémoire continuellement: elle est libérée après chaque utilisation.

Par contre, c'est un peu plus long à coder.
Voir une exemple ici: http://www.delphifr.com/codes/UTILISATION-FONCTION-CREATEMESSAGEDIALOG_20425.aspx

A+
Flo
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de florenth
Bacterius 3869 Messages postés samedi 22 décembre 2007Date d'inscription 3 juin 2016 Dernière intervention - 25 mai 2008 à 20:15
+3
Utile
Bonjour, bien sur !

Il te faudra déclarer Form1 dans ta clause Uses :

quand tu vois "implementation", tu mets après :

uses (le nom de l'unité de ta première fenêtre [en général je l'appelle "main"]);

Il te faudra créer une nouvelle procédure, appellons la "Finished", tu la mets dans la fiche mère (celle qui n'est pas la fenêtre au mot de passe) et elle sera appellée quand l'utilisateur cliquera sur OK. Elle contiendra l'equivalent de ce que tu mets après le "IF" de ton InputBox !

Alors dans la fenêtre mère :

procedure TForm1.Finished;
begin
*le code après ton IF habituel*
end;

procedure Button1Click(Sender: TObject);
begin
// Correspond au code qui appelle la fenêtre (a partir d'un bouton par exemple)
Form2.ShowModal;
end;


Dans la fenêtre fiche, quand on clique sur le bouton OK

procedure OKClick(Sender: TObject);
begin
Finished; // On appelle la procédure
Close; // On ferme
end;

N'oublie pas de déclarer ta fenêtre mère dans la fenêtre au mot de passe, sinon ca ne marchera pas.

Je te laisse trouver le reste, sinon c'est trop facile :p

Cordialement, Bacterius !

PS : je me suis surement très mal exprimé : indique-nous ce que tu n'as pas compris, et je te réexpliquerai !
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Bacterius
Wurzag 3 Messages postés lundi 3 avril 2006Date d'inscription 25 mai 2008 Dernière intervention - 25 mai 2008 à 18:39
0
Utile
Alors avant tout merci à vous 2 pour vos réponses.

Pour mon niveau qui est plutôt médiocre en delphi je pense que CreateMessageDialog est un petit peu compliquer pour moi :)
J'ai donc choisis la solution de créer une nouvelle fenêtre. Par contre un avantage que j'avais avec l'inputbox etait de pouvoir attendre la réponse dans un if comme ceci :

if InputBox('Confirmation du mot de passe', 'Retappez votre mot de passe', 'Votre mot de passe') = EdCryptKey.Text then

Comment pourrais-je créé un équivalent à l'aide d'une nouvelle fenêtre ?
Puis-je attendre la valeur de retour lorsque l'on appuie sur le boutton de confirmation ou non ?

Merci d'avance encore une fois pour vos éventuelles réponse.
Commenter la réponse de Wurzag
Bacterius 3869 Messages postés samedi 22 décembre 2007Date d'inscription 3 juin 2016 Dernière intervention - 25 mai 2008 à 20:16
0
Utile
Ah oui un dernier truc :

" Avec Delphi, rien n'est impossible ! " ^^

Cordialement, Bacterius !
Commenter la réponse de Bacterius
Bacterius 3869 Messages postés samedi 22 décembre 2007Date d'inscription 3 juin 2016 Dernière intervention - 25 mai 2008 à 20:16
0
Utile
Ah oui un dernier truc :

" Avec Delphi, rien n'est impossible ! " ^^

Cordialement, Bacterius !
Commenter la réponse de Bacterius
Bacterius 3869 Messages postés samedi 22 décembre 2007Date d'inscription 3 juin 2016 Dernière intervention - 25 mai 2008 à 20:16
0
Utile
Zut !

Désolé :/

Cordialement, Bacterius !
Commenter la réponse de Bacterius
Wurzag 3 Messages postés lundi 3 avril 2006Date d'inscription 25 mai 2008 Dernière intervention - 25 mai 2008 à 23:40
0
Utile
Oui c'est finalement la méthode que je vais appliquer.

Merci beaucoup pour vos réponse a tous.
Commenter la réponse de Wurzag

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.