Salut LoicH
Pour avoir les TEdit qui affiche de gros points a la place des caracteres il faut faire comme ceci
Pour afficher le message au passage du curseur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Edit1->Font->Name = "wingdings"; Edit1->PasswordChar = 'l';
pour convertir automatiquement le texte en minuscle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Edit1->Hint = "mon texte"; Edit1->ShowHint = true;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2Edit1->CharCase = ecLowerCase; // ecNormal, ecLowerCase, ecUpperCase
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
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"); } }
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
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(); } }
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
cdlt
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());
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
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 :
![]()
Partager