emkka
Messages postés26Date d'inscriptionvendredi 7 avril 2006StatutMembreDernière intervention 1 juin 2008
-
2 mai 2006 à 19:25
jlen100
Messages postés1606Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention25 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.
jlen100
Messages postés1606Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention25 juillet 201413 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!!!
emkka
Messages postés26Date d'inscriptionvendredi 7 avril 2006StatutMembreDerniè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
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 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
Matt 261
Messages postés1173Date d'inscriptionmercredi 2 novembre 2005StatutMembreDernière intervention10 septembre 20113 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...