begin process at 2012 02 10 16:47:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

Maths

 > 

n'autoriser que des chiffres dans un edit


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

n'autoriser que des chiffres dans un edit

mardi 31 mai 2005 à 21:02:41 | n'autoriser que des chiffres dans un edit

Maniaxman

Salut, j'ai un edit, et j'ai mis ce code pour qu'on ne puisse y entrer que des chiffres :

procedure TForm1.edit1KeyPress(Sender: TObject; var Key: Char);
begin
If (not(Key in [#8,'0'..'9'])) then Key   := #0;
end;

Seulement, on peut toujours faire un coller et là il va y avoir un problème dans mon application.

Comment faire soit pour interdire le collage dans l'edit, soit pour vérifier qu'il n'y a que des chiffres dans l'edit grâce à l'évènement edit1exit ?

Merci

mardi 31 mai 2005 à 21:12:21 | Re : n'autoriser que des chiffres dans un edit

yvescollet



Utilise un MaskEdit, tu te feras moins ch***

bonne prog
mardi 31 mai 2005 à 21:23:46 | Re : n'autoriser que des chiffres dans un edit

florenth

Membre Club
Salut,

Ou alors comme tu le souhaite, tu peux utiliser l'évenement OnChange de ton Edit.

procedure TForm1.MonEditChange(Sender: TObject);
var
  i: Integer;
begin
  for i:=0 to Length(MonEdit.Text) do
    if not (MonEdit.Text[i]  in ['0'..'9']) then
   begin
     MonEdit.Text:='';
     Exit;
   end;
end;


Si tu ne te plantes pas ......
tu ne poussera jamais
mardi 31 mai 2005 à 21:38:33 | Re : n'autoriser que des chiffres dans un edit

Maniaxman

j'ai un message d'erruer avec ton code dès que j'entre un chiffre
mardi 31 mai 2005 à 21:52:55 | Re : n'autoriser que des chiffres dans un edit

florenth

Membre Club
Réponse acceptée !
Ah oui excuse moi, petite étourderie.
La valeur initiale de i doit être de 1 et non pas 0 comme je j'ai mis.

Correction:

procedure TForm1.MonEditChange(Sender: TObject);
var
  i: Integer;
begin
  for i:=1 to Length(MonEdit.Text) do
    if not (MonEdit.Text[i]  in ['0'..'9']) then
   begin
     MonEdit.Text:='';
     Exit;
   end;
end;


N'oublie pas: dans l'évenement OnChange.

@ ++ Florent

Si tu ne te plantes pas ......
tu ne poussera jamais
mardi 31 mai 2005 à 22:03:16 | Re : n'autoriser que des chiffres dans un edit

Maniaxman

merci bcp florenth ça marche !!!
jeudi 2 juin 2005 à 11:46:07 | Re : n'autoriser que des chiffres dans un edit

yoghisan

Je me peux mette

procedure TForm1.Edit1Change(Sender: TObject);
var nombre: integer;
begin
  If not TryStrToInt(Edit1.Text, nombre) then  Edit1.Text := '';
  // TryStrToFloat pour les réels
end;

le probleme c'est qu'a la moindre erreur ca efface tout...
Donc voila une autre solution qui tient la route

private
  MemoireTexte: string;
  MemoirePosition: integer;

procedure TForm1.FormCreate(Sender: TObject);
var nombre: integer;
begin
  If not TryStrToInt(Edit1.Text, nombre) then Edit1.Text := '';
end;

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  MemoireTexte := Edit1.text;
  MemoirePosition:= Edit1.SelStart;
end;

procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
var nombre: integer;
begin
  If not TryStrToInt(Edit1.Text, nombre)
    then begin
      Edit1.Text := MemoireTexte;
      Edit1.SelStart := MemoirePosition;
    end;
end;



Cette discussion est classée dans : chiffres, edit, key, autoriser


Répondre à ce message

Sujets en rapport avec ce message

Seulement des chiffres dans un edit. [ par Becracker ] Salut à tous, Je voudra savoir si qqn d'entre vous sait comment faire pour qu'un edit n'accepte que des chiffres. Merci à tous et désolé pour autant Autoriser uniquement la saisie de chiffres dans un TEdit [ par totob0 ] j'ai un objet  Tedit destininé à recevoir un  numero de telephone et je ne  veus pas que l'utilisateur puisse introduire d'autre caractères   que 0.. contrôle de saisie [ par pseudoOM ] Bonjour tout le monde.Quelqu'un pourrait-il m'aider pour les contrôle de saisie. J'aimerais contrôler si l'utilisateur entre des chiffre dans Edit. J' saisir uniquement des chiffres dans un edit [ par mark15 ] bonjour, je cherche un contole qui me permet a un Tedit d'accepter uniquement des chiffres ou des lettres merci Probléme d'un Edit [ par cmoimeme ] Je voulais vous demandez comment peut-on faire pour que dans un edit (MaxLenght à 11) qu'on puisse seulement écrire comme caractères : Au départ 6 chi Limiter le nb de caractere dans une stringgrid [ par philpas ] bonjour, j'ai un problème que je n'arrive pas à solutionner. Sur un stringgrid je voudrais limiter la saisie dans les cellules à des caractères numéri séparateur dans un rich edit [ par cineon ] Bonjour à tous! Voila mon problème: je voudrai récupérer dans un richedit une partie de texte se trouvant entre 2 images! L'image sert donc de séparat edit ou memo string en integer [ par TouTSpeed ] bonjour à tous, le titre n'est pas très explicite mais je voudrais savoir si il est possible de convertie un string en integer en gros je voudrais qu faire une recherche avec un edit [ par alextuning ] bonjour a tous voila j aimerais que quand je tape un texte dans l edit par example voiture le programme va aller chercher se mot dans une base de donn


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,357 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales