Imposer l'écriture binaire dans un TEdit

Résolu
bobstien Messages postés 38 Date d'inscription lundi 4 avril 2005 Statut Membre Dernière intervention 1 mars 2007 - 27 nov. 2006 à 10:59
bobstien Messages postés 38 Date d'inscription lundi 4 avril 2005 Statut Membre Dernière intervention 1 mars 2007 - 27 nov. 2006 à 14:10
   Bonjour,
J' aimerais pouvoir écrir dans un Tedit seulement en binaire car c est pour trensmettre des donnée via le port paralele. Et je ne sais comment fair. Pouvez vous m aider? merci d'avance pour votre aide.

5 réponses

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
27 nov. 2006 à 11:22
ps: le contrôle des caractères se fait dans l'unité "UMain.pas" dans la procédure :
procedure Tfrm_Main.Edit_NumKeyPress(Sender: TObject; var Key: Char);

l'autre unité "CustomCtrls.pas" ne t'es pas indispensable pour contrôler la saisie dans un TEdit.
Elle permet juste un contrôle plus poussé sur le TEdit ... mais il y a des explications et une démo

 
@+
Cirec

<hr size="2" />
3
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
27 nov. 2006 à 11:54
limiter a 0 .. 1 (binaire)

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

   if not (Key in ['0','1',#08]) then key := #0;

end;

limiter a 0..F (hexa)

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin
   if Key in ['a'..'f'] then Key : = UpperCase(Key);

   if not (Key in ['0'..'9','A'..'F',#08]) then key := #0;

end;

<hr size="2" width="100%" />Croc (click me)
3
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
27 nov. 2006 à 12:06
@ F0xi :
c'est vrai que c'était plus simple de l'écrire directement ici ... mais ça lui permettera au moins de voir encore d'autres choses en plus de la limitation de saisie

Par contre ceci :
   if Key in ['a'..'f'] then Key := UpperCase (Key);

te provoquera une petite erreur a la  compilation :
Type incompatible : 'Char' et 'String'

comme ceci ça passera bien mieux

   if Key in ['a'..'f'] then Key : = UpCase(Key);

 
@+
Cirec

<hr size="2" />
3
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
27 nov. 2006 à 13:44
encore plus simple :

if Key in ['a'..'f'] then dec(Key,$20);

<hr size="2" width="100%" />Croc (click me)
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bobstien Messages postés 38 Date d'inscription lundi 4 avril 2005 Statut Membre Dernière intervention 1 mars 2007 1
27 nov. 2006 à 14:10
Merci beaucoup les programmeurs  Encore beaucoup de chemin me reste à parcourir pour atteindre  votre niveau. Bonne journée
0
Rejoignez-nous