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

 Delphi Discussion :

Récupérer une valeur avec une procédure déclenchée par un événement


Sujet :

Delphi

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 116
    Points : 45
    Points
    45
    Par défaut Récupérer une valeur avec une procédure déclenchée par un événement
    Je fais une vérification de mot de passe dnas un form dédié et souhaiterait récupéré une valeur suite à la vérification de ce mot de passe, à savoir le type d'utilisateur (simple, admin etc)...

    Un simple integer est suffisant bien entendu, mais comment repasse cette valeur vers l'extérieur?

    Une proc ouvre appelons la Proc1, ouvre le Fmpasswd (Form pour le password). Un bouton sur ce form déclenche la vérification dans la BD et ... je souhaite récupérer l'info dans Proc1.

    Comment faire ?

  2. #2
    Membre expérimenté Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Points : 1 448
    Points
    1 448
    Par défaut
    ajoute simplemnt une property a ta form fmpassword

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    procedure proc1;
    var 
      f: frmPassword;
      tu: integer;
    begin
      f := frmPassword.Create;
      f.showmodal;
      tu := f.TypeUtilisateur;
      f.Free;
    ...
    end;

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 16
    Points : 20
    Points
    20
    Par défaut
    une solution assez élégante serait de définir une méthode de classe pour ta form password qui se chargerait de l'instancier et de la libérer tout en te renvoyant le mots de passe, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      TFrmPass = class(TForm)
      private
        FPass : Integer;
        {...}
      public
        class function Execute( out aPass : Integer) : Boolean;
      end;
    Avec la fonction en question définie de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    class function TFrmPass.Execute( out aPass : Integer) : Boolean;
    begin
      with TFrmPass.Create( nil) do
      try
        {...}
        ShowModal;
        Result := ModalResult = mrOk;
        if Result then aPass := FPass;
      finally
        Free;
      end;
    end;
    et serait appelée dans ton code de cette manière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    procedure proc1;
    var i : integer;
    begin
      if not TFrmPass.Execute( i) then {traitement en cas d'appui sur Cancel}
      else {traitement sur ton mot de passe}
    end;
    @guillemouze : attention à la libération de ta form, en cas d'exception dans l'exécution de ta frmPassword, ton f n'est pas libéré. Un petit try...finally autour de tout ça et on évite le moindre problème.

  4. #4
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    moi a votre place je déclare un variable globale dans ma fenêtre principale ou un mon module de donnée si il existe que je vais initialiser depuis ma form Login.

  5. #5
    Membre expérimenté Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Points : 1 448
    Points
    1 448
    Par défaut
    Citation Envoyé par aityahia Voir le message
    moi a votre place je déclare un variable globale dans ma fenêtre principale ou un mon module de donnée si il existe que je vais initialiser depuis ma form Login.
    cette technique me semble plus se rapprocher de la bidouille que de l'implementation propre et ordonnée.
    Permet moi aityahia de fortement recommander ta proposition

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. Réponses: 15
    Dernier message: 26/01/2015, 19h37
  3. [WD16] Récupérer la valeur d'une colonne d'une table d'une ligne précise
    Par elghers_hocine dans le forum WinDev
    Réponses: 16
    Dernier message: 06/05/2011, 18h11
  4. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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