Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

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


Information sur la source

Catégorie :Divers Niveau : Débutant Date de création : 01/05/2003 Date de mise à jour : 01/05/2003 21:27:47 Vu : 2 310

Note :
Aucune note

Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

Description

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

  • 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.
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.
   

Commentaires et avis

signaler à un administrateur
Commentaire de bgK le 01/05/2003 19:25:42

Je crois que tu vas te faire gueuler dessus parce que tu as utilisé des goto (il faut éviter)

signaler à un administrateur
Commentaire de Partagas le 01/05/2003 19:45:17

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!

signaler à un administrateur
Commentaire de JackTheRipp3r le 01/05/2003 20:13:52

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.

signaler à un administrateur
Commentaire de Partagas le 01/05/2003 20:33:02

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.

signaler à un administrateur
Commentaire de JackTheRipp3r le 01/05/2003 20:49:53

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 !

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,172 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.