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

C++Builder Discussion :

Fenêtre 'Caps lock' pour un mot de passe


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2004
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 115
    Par défaut Fenêtre 'Caps lock' pour un mot de passe
    Bonjour à tous,

    j'aimerais bien afficher une fenêtre stipulant que 'Caps lock (Verrouillage majuscule)' est appuyé. Y-a-t-il une méthode simple ou faut-il créer une Forme spécifique pour faire ceci ?

    Je vous met un exemple ci-joint :



    Merci d'avance

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut LoicH
    Pour avoir les TEdit qui affiche de gros points a la place des caracteres il faut faire comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Edit1->Font->Name = "wingdings";
    Edit1->PasswordChar = 'l';
    Pour afficher le message au passage du curseur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Edit1->Hint = "mon texte";
    Edit1->ShowHint = true;
    pour convertir automatiquement le texte en minuscle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Edit1->CharCase = ecLowerCase; // ecNormal, ecLowerCase, ecUpperCase

  3. #3
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par défaut
    Hello,

    l'exemple de l'application fournie est une application .Net
    dans le cas de C++ Builder ou delphi tu dois créer une form
    contenant les différents éléments de ton exemple

    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  4. #4
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Pour tester si c'est une minuscule peut etre comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void __fastcall TForm1::Edit1Change(TObject *Sender)
    {
    String a = Edit1->Text;
    int b = a.Length();
    String c = a.SubString(b,1);
    if(c <= "a" && c <= "Z")
    {
    ShowMessage("Majuscule");
    }
    }

  5. #5
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 086
    Par défaut
    Citation Envoyé par blondelle Voir le message
    Pour avoir les TEdit qui affiche de gros points a la place des caracteres il faut faire comme ceci
    Sous Vista\Seven, le PasswordChar en * affiche automatiquement des ronds verts
    Il faut juste veiller que la font est Tahoma et non MS sans Serif (comme sous C++Builder 6 et 2K)

    PasswordChar en * devrait activer ce type de contrôle normalement
    J'ai testé, sous BCB2007 + XPManifest sur XP SP3, cela affiche une info bulle

    il faut laisser CharCase à ecNormal
    Si tu modifie CharCase cela n'affichera plus le message et appliquera la conversion (pratique à bannir car cela réduit la variabilité du mot de passe)

    Comme dans le sujet Comment utiliser le caractère ● comme Passwordchar?



    isupper existe soit dans ctype.h
    IsUpper dans SysUtils des versions Unicode de C++Builder

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void __fastcall TForm1::Edit1Change(TObject *Sender)
    {
      int l = Edit1->Text.Length();
      if (l > 0)
        if (IsUpper(Edit1->Text[l]))
          ShowMessage("Majuscule");
    }
    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

  6. #6
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Pour afficher le message la ou tu veux, en reprenant le code de ShaiLeTroll
    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
     
    void __fastcall TForm1::Edit1Change(TObject *Sender)
    {
      int l = Edit1->Text.Length();
      if (l > 0)
        if (isupper(Edit1->Text[l]))
        {
    THintWindow* myhint;
    myhint = new THintWindow(Edit1);
    myhint->Color = clInfoBk;
    myhint->ActivateHint(TRect(Form1->Left + Edit1->Left + 20, Form1->Left + Edit1->Top + 15, Form1->Left + Edit1->Left + 235, Form1->Left + Edit1->Top + 40),"Vous devez ecrire en minuscule");
    Sleep(1000);
    myhint->ReleaseHandle();
          }
    }

  7. #7
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par défaut
    Hello Blondelle
    Attention au MemoryLeak
    la mémoire allouée a hint window n'est jamais désallouée
    l'utilisation de auto_ptr ou unique_ptr permet l'allocalion mémoire sans se soucier de libérer les objets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #include <memory>
    std::unique_ptr<THintWindow> myhint(new THintWindow());
    // ou 
    std::auto_ptr<THintWindow> myhint(new THintWindow());
    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  8. #8
    Membre confirmé
    Inscrit en
    Octobre 2004
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 115
    Par défaut
    merci a tous pour l’intérêt que vous portez à ce sujet.

    Alors j'ai bien réussi à masquer les caractères et à tester minuscules et majuscules.
    Par contre il y a juste l'affichage de la fenêtre qui indique qu'on a activé le Verrouillage numérique. Mais si j'ai bien compris DjmSoftware, il faut que je crée une form juste pour cela :

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Demande de conseil pour les mots de passe
    Par jerem7w dans le forum Sécurité
    Réponses: 5
    Dernier message: 25/03/2009, 00h45
  2. [MySQL] souci pour mon mot de pass du forum
    Par will_smith dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 30/06/2008, 18h00
  3. Requête paramétrée pour un mot de passe
    Par Jacques Bellavance dans le forum Access
    Réponses: 7
    Dernier message: 29/03/2008, 22h58

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