IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

Mot de passe pour mon application.


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2014
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2014
    Messages : 81
    Points : 24
    Points
    24
    Par défaut Mot de passe pour mon application.
    Salut mes amis, j'espère que vous allez bien...

    Mon souci est le suivant:

    Je veux tout simplement ajouter un mot de passe sur une fiche (Form) qui démare avant l'application que je développe, mais le problème c'est que je ne sais pas ou taper le code du bouton qui compare le mot de passe saisie dans Edit1.text avec le vrais mot de passe.

    Le nom de la fiche qui demande de mot de passe est : Fpassword
    J'ai essayé le code suivant en le tapant dans : Projet----> View Source

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    begin
      Application.Initialize;
      Application.CreateForm(TFpassword, Fpassword);
      if Fpassword.validerClick(Sender) then // validerClick normalement c'est l'appelle de l'évenement OnClick du
                                             // bouton Valider
      if RzEdit2.text=rzedit1.Text then      // ici le test du text tappé
      begin
      FSplash := TFSplash.Create(Application);
      FSplash.Show;FSplash.Update; //-------------
      Application.CreateForm(TPrincipale, Principale);
      Application.CreateForm(TAjouModif, AjouModif);
      Application.CreateForm(TFdirection, Fdirection);
      Application.CreateForm(TFEtat, FEtat);
      Application.CreateForm(TFLangue, FLangue);
      Application.CreateForm(TFSalle, FSalle);
      Application.CreateForm(TFTypeArchive, FTypeArchive);
      Application.CreateForm(TFAMTypeArchive, FAMTypeArchive);
      Application.CreateForm(TFAMDirection, FAMDirection);
      Application.CreateForm(TFAMSalleArchive, FAMSalleArchive);
      Application.CreateForm(TFAMEtatArchive, FAMEtatArchive);
      Application.CreateForm(TFAMLangueArchive, FAMLangueArchive);
      Application.CreateForm(TFSupArchive, FSupArchive);
      Application.CreateForm(TFermer, Fermer);
      Application.CreateForm(TFSearch, FSearch);
      //Application.CreateForm(TFpassword, Fpassword);
      Application.CreateForm(TFLocalisation, FLocalisation);
      Application.CreateForm(TFSERCH1, FSERCH1);
      Application.CreateForm(TFApropos, FApropos);
      FSplash.Close;FSplash.Release;//-------------
      Application.Run;
      end
      else
      Application.Terminate;
    end.
    Qand je compile je reçois les mesages d'erreurs:
    Undeclared identifier : 'validerClick'
    Undeclared identifier : 'Sender'
    Undeclared identifier : 'RzEdit2'

    Nom : MOT DE PASSE.JPG
Affichages : 1271
Taille : 39,7 Ko

    Quelqu'un pourrait me corriger mon code?
    merci...

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 449
    Points : 24 856
    Points
    24 856
    Par défaut
    Dans une approche simpliste, il faudrait le mettre dans l'unité contenant TFpassword directement dans le OnClick

    N'utilise pas CreateForm pour créer TFpassword sinon cela sera la MainForm et cela fermera ton application prématurément !

    Modifie le Kind du Bouton Valider en bkOK
    J'ajouterais un bouton Annuler aussi en Kind bkCancel
    Ajoute une propriété Password pour encaspuler l'accès à RzEditPassword (soit RzEdit1, à renommer pour faciliter la maintenance du code)
    Supprime RzEdit2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    property Password: string read GetPassword;
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function TFpassword.GetPassword(): string;
    begin
      Result := RzEditPassword.Text; // RzEdit1
    end;

    Ne stocke pas le mot de passe dans un autre Edit, il serait facile de le récupérer avec WindowsSpy

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
      ...
      Application.Initialize;
      with TFpassword.Create(nil) do
      try
        if ShowModal() = mrOK then
        begin
          if Password <> '... le mot de passe ' then
            Exit;
        end;
      finally
        Free();
      end;
      FSplash := TFSplash.Create(Application);
      ...
    '... le mot de passe ' peut être une chaine en dur,
    Si c'est une application utilisée en interne quelques rares personnes, ça peut passer même si avoir un login/pw par utilisateur c'est mieux
    Si c'est une application distribuée à plusieurs sociétés ou groupes d'utilisateurs, gérer un couple login/pw pour une gestion de rôle/habilité est préférable, sinon le mot de passe ne sert à rien !

    Je trouve ton DPR fort lourd, pourquoi tous ces CreateForm ?
    Créer toutes les fenêtres d'une application à son lancement est contre-performant et souvent cela rend le code confus par l'utilisation systématique des variables globales de fenêtre !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2014
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2014
    Messages : 81
    Points : 24
    Points
    24
    Par défaut
    Merci ShaiLeTroll pour votre aide.

    Je vais essayer de corriger le code et je revient aprés

  4. #4
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2014
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2014
    Messages : 81
    Points : 24
    Points
    24
    Par défaut
    Bonjour ShaiLeTroll,Corige moi SVP.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    property Password: string read GetPassword;
    j'ai tappé ce code dans l'unité UPassword aprés public
    erreur : Field or method identofier expected

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function TFpassword.GetPassword(): string;
    begin
      Result := RzEditPassword.Text; // RzEdit1
    end;
    J'ai déclaré cette fonction avant le OnClick de mon bkOK
    erreur : undeclared identifier: 'GetPassword'
    erreur : undeclared identifier: 'Result'


    Et pour le bkOK:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    procedure TFpassword.BitBtn1Click(Sender: TObject);
    begin
     Application.Initialize;
      with TFpassword.Create(nil) do
      try
        if ShowModal() = mrOK then
        begin
          if Password <> '... le mot de passe ' then
            Exit;
        end;
      finally
        Free();
      end;
     
      FSplash := TFSplash.Create(Application);
      FSplash.Show;FSplash.Update; //-------------
      Application.Title := 'Mtm_Archives';
      Application.CreateForm(TPrincipale, Principale);
      Application.CreateForm(TAjouModif, AjouModif);
      Application.CreateForm(TFdirection, Fdirection);
      Application.CreateForm(TFEtat, FEtat);
      Application.CreateForm(TFLangue, FLangue);
      Application.CreateForm(TFSalle, FSalle);
      Application.CreateForm(TFTypeArchive, FTypeArchive);
      Application.CreateForm(TFAMTypeArchive, FAMTypeArchive);
      Application.CreateForm(TFAMDirection, FAMDirection);
      Application.CreateForm(TFAMSalleArchive, FAMSalleArchive);
      Application.CreateForm(TFAMEtatArchive, FAMEtatArchive);
      Application.CreateForm(TFAMLangueArchive, FAMLangueArchive);
      Application.CreateForm(TFSupArchive, FSupArchive);
      Application.CreateForm(TFermer, Fermer);
      Application.CreateForm(TFSearch, FSearch);
      //Application.CreateForm(TFpassword, Fpassword);
      Application.CreateForm(TFLocalisation, FLocalisation);
      Application.CreateForm(TFSERCH1, FSERCH1);
      Application.CreateForm(TFApropos, FApropos);
      FSplash.Close;FSplash.Release;//-------------
      Application.Run;
    end;
    erreur : cannot read a write-only property

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 449
    Points : 24 856
    Points
    24 856
    Par défaut
    Je ne peux pas te corriger pour plusieurs raisons,
    1. on a les erreurs mais sans le code source complet, difficile de te proposer une correction si l'on ne sait pas d'où l'on part
    2. tu sembles faire des erreurs par manque totale de maitrise du langage, je pense qu'avant d'aller plus loin, il faudrait que tu consultes : Guide Pascal et Delphi
      Comme par exemple XVI-C-6-a. Programmation à l'aide d'objets - Propriétés simples


    Pour le code suivant, on a un peu de matière et j'ai l'impression que tu as un fais un mauvais copier coller de ton code car il n'a aucun sens

    Citation Envoyé par samidz2014 Voir le message
    Bonjour ShaiLeTroll,Corige moi SVP.

    Et pour le bkOK:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    procedure TFpassword.BitBtn1Click(Sender: TObject);
    begin
     Application.Initialize;
      with TFpassword.Create(nil) do
      try
        if ShowModal() = mrOK then
        begin
          if Password <> '... le mot de passe ' then
            Exit;
        end;
      finally
        Free();
      end;
     
      FSplash := TFSplash.Create(Application);
      FSplash.Show;FSplash.Update; //-------------
      Application.Title := 'Mtm_Archives';
      Application.CreateForm(TPrincipale, Principale);
      Application.CreateForm(TAjouModif, AjouModif);
      Application.CreateForm(TFdirection, Fdirection);
      Application.CreateForm(TFEtat, FEtat);
      Application.CreateForm(TFLangue, FLangue);
      Application.CreateForm(TFSalle, FSalle);
      Application.CreateForm(TFTypeArchive, FTypeArchive);
      Application.CreateForm(TFAMTypeArchive, FAMTypeArchive);
      Application.CreateForm(TFAMDirection, FAMDirection);
      Application.CreateForm(TFAMSalleArchive, FAMSalleArchive);
      Application.CreateForm(TFAMEtatArchive, FAMEtatArchive);
      Application.CreateForm(TFAMLangueArchive, FAMLangueArchive);
      Application.CreateForm(TFSupArchive, FSupArchive);
      Application.CreateForm(TFermer, Fermer);
      Application.CreateForm(TFSearch, FSearch);
      //Application.CreateForm(TFpassword, Fpassword);
      Application.CreateForm(TFLocalisation, FLocalisation);
      Application.CreateForm(TFSERCH1, FSERCH1);
      Application.CreateForm(TFApropos, FApropos);
      FSplash.Close;FSplash.Release;//-------------
      Application.Run;
    end;
    erreur : cannot read a write-only property
    Est-ce dans le fichier UPassword ?
    Si oui, cela n'a pas du sa place à cet endroit !
    Tu n'a pas compris l'intérêt du ShowModal et du Kind !

    Est-ce dans le fichier DPR ?
    Dans ce cas, procedure TFpassword.BitBtn1Click(Sender: TObject); n'a pas sa place !
    Tout cela est très confu !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. Mettre un mot de passe pour une application
    Par lucciana dans le forum Débuter
    Réponses: 10
    Dernier message: 05/05/2011, 21h49
  2. Réponses: 1
    Dernier message: 21/12/2008, 00h08
  3. mot de passe pour une application access
    Par samirasanae dans le forum IHM
    Réponses: 2
    Dernier message: 18/07/2008, 11h22
  4. Réponses: 15
    Dernier message: 15/05/2006, 09h26
  5. Réponses: 10
    Dernier message: 15/05/2006, 07h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo