Petite amélioration du source du mot de passe de quake" (pour débutants)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 644 fois - Téléchargée 35 fois

Contenu du snippet

En fait c'est pas trop compliqué (g réussi à faire ça assez vite en étant débutant) mais ça améliore un peu le source de Quake (Pas le jeu comme l'a cru un de mes potes, Quake est le pseudo d'un programmeur de Codes Sources) qui était une bonne base mais inéficace, merci à lui quand-même pour m'avoir donné une base pour faire ce petit source(désolé pour les erreurs de construction du source, pour compléter la lisibilité j'ai ajouté pas mal de commentaires.

Source / Exemple :


procedure TForm1.FormCreate(Sender: TObject); //Ce code est à rentrer dans la partie Evénements de l'inspecteur d'objets à l'onglet ""OnCreate""
const
    MotDePasse = 'Le mot de passe choisi est à rentrer ici';
var
    Reponse: string;
    DonneReponse: boolean;//Pour les novice, boolean sert à affecter à une variable la valeur true (vrai) ou false (faux)
label label1;
begin
    DonneReponse := InputQuery('.::Attention::.', 'Entrez le mot de passe !', Reponse);
    if DonneReponse then
    begin
      if Reponse = MotDePasse then
      Form1.Show
      else
        begin //Dans le cas où l'utilisateur entre un mauvais mot de passe, le programme ouvre la même fenêtre que la première, mais avec un message différent "Entrez un mot de passe valide !"
        label1:// cible du goto label1
        Reponse := '';
         DonneReponse := InputQuery('.::Erreur::.', 'Entrez un mot de passe valide !', Reponse);
         if DonneReponse then
          begin
           if Reponse = MotDePasse then
            Form1.Show
            else
            goto label1 //Ouvre de nouveau la fenêtre avec les instructions en cas de mauvais mot de passe
          end
         else                     //si la fenêtre est quittée
         Application.Terminate;   // ou si on clique sur annuler
        end;                             //le programme se ferme
    end
   else                      //idem, mais cette fois ci
   Application.Terminate;   //c'est pour la deuxième fenêtre, celle qui s'ouvre quand
end;                                         //l'utilisateur a entré un mauvais mot de passe
end.

A voir également

Ajouter un commentaire Commentaires
JackTheRipp3r Messages postés 50 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 5 février 2004
1 mai 2003 à 20:49
Ok ça marche merci beaucoup, en fait j'ai choisi GOTO parce que je n'ais pas encore fini de lire mon bouquin ("Borland Delphi 7" collection : "Le tout en poche" édition : "CompuPress") que je conseille vraiment aux débutants. En tout cas merci pour ton aie Partagas !
cs_Partagas Messages postés 30 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 1 juin 2004
1 mai 2003 à 20:33
alors, le goto est deconseille parcequ'il boruille la lisibilite du code. par exemple en lisant ta source, je n'ai pas fait attention au "label", alors quand je suis tombe sur le Goto, j'ai du me mettre a sa recherche. Une boucle de controle est preferable, car d'une part tu testes reellement tes conditions, et d'autre part, tu encapsules tes instructions dans des bornes mieux definies. enfin, c'est mon opinion. Goto, est plus une subsistance des anciens langages (je pense au basic surtout...). Bref, il vaut mieux preferer REPEAT ou WHILE.
Sinon, pour le etoiles, je ne crois pas que ce soit possible avec un InputQuery, donc il faut que tu crées une fiche avec un Edit, et tu changes sa propietes PasswordChar. Ensuite, ta fiche renvoie une valeur booleene, comme le ferait un InputQuery.

au fait, ma source ne marche pas... desole...
ca, c'est plus correct:

procedure TForm1.FormCreate(Sender: TObject);
const Mot='antoine';
var rep: string;
DonneRep: boolean;
begin
DonneRep := InputQuery('.::Attention::.', 'Entrez le mot de passe !', Rep);
if Donnerep
then
repeat
if rep<>mot
then
begin
DonneRep := InputQuery('.::Erreur::.', 'Entrez un mot de passe valide !', Rep);
if DonneRep=false then Application.Terminate;
end
else
Showmessage('Mot de passe Correct');
until (rep=mot) or (DonneRep=false)
else
begin
Showmessage('Application Protégée par Mot de Passe');
application.terminate;
end;
end;

end.
JackTheRipp3r Messages postés 50 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 5 février 2004
1 mai 2003 à 20:13
Merci beaucoup, j'ai 2 petites questions:
1 - Pk c'est déconseillé d'utiliser des GOTO ?
2 - Et comment on fait pour que le mot de passe entré apparaisse sous forme de petites étoiles ?
Si qq1 pouvait m'aider ce serait sympa !
Ah, une remarque sur ta source Partagas, elle a pas l'air de fonctionner. Même quand on entre le bon mot de passe, le message d'erreur "Application protégée par mot de passe" s'affiche.
cs_Partagas Messages postés 30 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 1 juin 2004
1 mai 2003 à 19:45
si je peux me permettre, tu peux faire plus court, avec la meme idee, et sans GOTO:

procedure TForm1.FormCreate(Sender: TObject);
const Mot='antoine';
var rep: string;
DonneRep: boolean;
begin
if DonneRep = InputQuery('.::Attention::.', 'Entrez le mot de passe !', Rep)
then
repeat
begin
DonneRep := InputQuery('.::Erreur::.', 'Entrez un mot de passe valide !', Rep);
if DonneRep=false then Application.Terminate;
end;
until (rep=mot) or (DonneRep=false)
else
begin
Showmessage('Application Protégée par mot de passe!');
Application.terminate;
end;
end;

end.


mais pour une debutant comme tu dis, moi je trouve ca deja bien. Enfin un debutant qui cherche au lieu d'attendre une reponse toute cuite!
cs_bgK Messages postés 131 Date d'inscription vendredi 7 juin 2002 Statut Membre Dernière intervention 19 janvier 2004
1 mai 2003 à 19:25
Je crois que tu vas te faire gueuler dessus parce que tu as utilisé des goto (il faut éviter)

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.