begin process at 2010 02 10 10:46:24
  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' 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 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 n'autoriser que le numerique dans un DBEdit [ par tounfalis ] je veux en sorte que lorsqu'on saisi dans le dbedit il n'accepte que du numérique par exemple si le champ est numérique et si la personne saisi les ca Problème edit exception EConvertError [ par anil16 ] Salut, voici mon problème: J'ai un edit qui affiche le 'montant total HT' (la somme d'une colonne d'un dbgrid de type currency) dans un autre edit l' key help [ par AITFRAH1 ] salut tous le monde; j'ai une table vente avec un champ montant qui est de type monétaire mon problème est le suivant: il n'accepte pas la touche sep


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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 : 0,936 sec (3)

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