PETITE AMÉLIORATION DU SOURCE DU MOT DE PASSE DE QUAKE" (POUR DÉBUTANTS)

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
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
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/12512-petite-amelioration-du-source-du-mot-de-passe-de-quake-pour-debutants

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)
Rejoignez-nous