Zone edit

Résolu
emkka
Messages postés
26
Date d'inscription
vendredi 7 avril 2006
Statut
Membre
Dernière intervention
1 juin 2008
- 2 mai 2006 à 19:25
jlen100
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
- 3 mai 2006 à 15:35
bonjour,
Dans une zone edit de mon programme, je veux que quand l'utilisateur appuie sur ' . ' dans la zone edit je veux avoir une virgule ' , ' au lieu du point.(cas d'un nombre reél par exemple).
meci d'avance.

10 réponses

jlen100
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
2 mai 2006 à 21:23
oui je n' ai pas testé ta solution  mais il est plus simple
d'intercepter le caractère à la frappe et de le remplacer à ce moment.

pour mettre ma solution en place dans l'inspecteur d'objet dans
l'onglet évènement tu double clique sur onkeypress et tu mets le code
que je t'ai donné
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin    if key'.' then key:',';

end;

ce n'est pas plus compliqué: 1 ligne de programme difficile de faire plus simple!!!

mais maintenant tu fais comme tu veux


@+

jlen
3
jlen100
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
2 mai 2006 à 21:01
salut,

dans l'évènement on keypress du TEdit tu mets:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin    if key'.' then key:',';

end;


@+

jlen
0
emkka
Messages postés
26
Date d'inscription
vendredi 7 avril 2006
Statut
Membre
Dernière intervention
1 juin 2008

2 mai 2006 à 21:14
desolé l'ami j'ai pas compris " dans l'évènement on keypress du TEdit tu mets: " , maiss sinon j'ai trouve une autre astuce qui est la suivante:

procedure Tajtproduit.prieditChange(Sender: TObject);
var chaine:string;
    p:byte;
begin
     p:=ajtproduit.priedit.SelStart;
     chaine:=ajtproduit.priedit.Text;
     if chaine[length(chaine)]='.' then chaine[length(chaine)]:=',';
     ajtproduit.priedit.Text:=chaine;
     ajtproduit.priedit.SelStart := p;
end;

j'explique le 'p' c'est pour garder la position du curseur en utilisant  'selstart' et puis a chaque fois où on tape '.' en aura sur l'ecran ',' et en dernier je repositionne le curseur pour continuer la saisie, c tt 
 
0
emkka
Messages postés
26
Date d'inscription
vendredi 7 avril 2006
Statut
Membre
Dernière intervention
1 juin 2008

2 mai 2006 à 22:22
merci bcp c une idée de génie tu ma bien sauvé. merci une deuxieme fois.
0

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

Posez votre question
jlen100
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
2 mai 2006 à 22:54
il n'y a rien de génial la dedans c'est l'enfance de l'art mais merci quand même pour le compliment


@+

jlen
0
Cirec
Messages postés
3832
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
17 février 2022
48
3 mai 2006 à 00:49
Salut,
et tu peux même éviter que l'utilisateur entre autre chose que des nombres.

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
// si Key <> de '0' à '9'  , suppression, et '.' alors key = #0 (vide)
  If not (Key in #8, #46) Then Key : = #0;
// tous les autre caractères ne sont pas pris en compte
end;
<hr> n'oubliez pas de cliquer sur Réponse Acceptée
si elle vous convient

<hr>@+
Cirec
0
yvessimon
Messages postés
637
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
9 janvier 2017

3 mai 2006 à 08:33
le point ou la vigule est le séparatueur décimal qu'il est possible de paramètrer avec

Application.decimalseparator

yvessimon
0
Matt 261
Messages postés
1173
Date d'inscription
mercredi 2 novembre 2005
Statut
Membre
Dernière intervention
10 septembre 2011
3
3 mai 2006 à 15:20
Ah Cirec, une petite erreur d'écriture :

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
// si Key <> de '0' à '9'  , suppression, et '.' alors key = #0 (vide)
  If not (Key in #8, #46) Then Key : = #0;
// tous les autre caractères ne sont pas pris en compte
end;

sinon celui qui ne connait pas se système va te maudire parceque tu lui auras dit n'importe quoi...?!?
@+
  Matt

<hr size="2" width="100%">La paresse est la mère du génie...
0
Cirec
Messages postés
3832
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
17 février 2022
48
3 mai 2006 à 15:25
Merci Matt,
j'avais même pas vu qu'il manquait un espace.

Encore une victime du copier coller

@+
Cirec
0
jlen100
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
3 mai 2006 à 15:35
de toute façon le compilateur aurait renvoyé une grosse insulte et ce serait arrêté sur l'expression

 pas trop méchant comme erreur


@+

jlen
0