Cobuce
Messages postés19Date d'inscriptionmardi 10 mai 2005StatutMembreDernière intervention 1 août 2006
-
12 juil. 2006 à 18:19
belaid52
Messages postés68Date d'inscriptionjeudi 1 juillet 2004StatutMembreDernière intervention23 juin 2011
-
18 oct. 2007 à 08:39
Salut,
Je cherche comment configurer l'environnement de Delphi 7 pour me permettre de confirmer avec la touche ENTRE dans les zones de saisies aulieu d'utiliser la touche TAB. Parce que à chaque fois pour utiliser la Touche ENTRE je dois mette la procedure ci-dessous :
procedure TwInvPhy.CurrencyEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin if (KEY = VK_Return) then
CurrencyEdit2.SetFocus;
end;
Y-t'il pas moyen de congifurer Delphi pour que celà soit automatique ?
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 12 juil. 2006 à 19:44
Salut Cobuce.
Voici une procedure qui passe le focus au composant Edit suivant. Donc une seule procedure pour tous les Edits (du même parent). Evenement KeyPress de Edit2 = Edit1KeyPress...
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin with (Sender as TEdit) do
if Key = Char(VK_RETURN) then
begin
Key:= #0;
PostMessage(Parent.Handle, WM_NEXTDLGCTL, 0, 0);
end;
end;
Cobuce
Messages postés19Date d'inscriptionmardi 10 mai 2005StatutMembreDernière intervention 1 août 2006 13 juil. 2006 à 12:34
Salut Thwilliam,
Merci pour la procedure, lorsque j'essai, cela ne semble pas avancer. Il y a un message d'erreur du genre "Invalid class typecast" lorsque j'appuis juste sur une touche dans la zone Edit1. Que dois-je faire ?
A+
Cobuce
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 13 juil. 2006 à 13:22
Désolé Cobuce, mais il ne devrait pas y avoir d'erreur si uniquement des TEdit ont accès à la procédure ci-dessus.
Pour voir d'où vient l'erreur, tu peux remplacer : with (Sender as TEdit)
par : with (Sender as TWinControl)
A +
Thierry
Vous n’avez pas trouvé la réponse que vous recherchez ?
belaid52
Messages postés68Date d'inscriptionjeudi 1 juillet 2004StatutMembreDernière intervention23 juin 20111 15 oct. 2007 à 22:26
salut Cobuce,
je voudrai bien utiliser votre methode pour passer d'un edit à un edit par la touche
Entree. Vous voulez bien m'expliquer la maniere comment je dois ecrire les procedures.
Procedure edit1
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin with (Sender as TEdit) do
if Key = Char(VK_RETURN) then
begin
Key:= #0;
PostMessage(Parent.Handle, WM_NEXTDLGCTL, 0, 0);
end;
end;
Procdure Edit2
Evenement KeyPress de Edit2 = Edit1KeyPress...
je n'ai pas compris cela. comment dois je ecrire la procedure Edit2.
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 16 oct. 2007 à 09:09
Salut belaid52,
Tu ne dois pas écrire de procedure pour Edit2.
Dans l'inspecteur d'objets, tu assignes simplement l'événement OnKeyPress de ton Edit2 à la procedure Edit1KeyPress que tu cherches dans la boîte déroulante. Et ainsi de suite pour tous les autres Edit.
A +
Thierry
belaid52
Messages postés68Date d'inscriptionjeudi 1 juillet 2004StatutMembreDernière intervention23 juin 20111 18 oct. 2007 à 08:39
Salut Cobuce,
Merci ca a marché,
maintenant pour un keypress qui utilse un key : Word
comment je peux reecrire la forme suivante :
procedure TForm_ConsultBl.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in #13, '0'..'9') then Key := #0;
end;
dans :
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if not(Key............
end;