cs_shakeoff1
Messages postés12Date d'inscriptionmardi 3 février 2004StatutMembreDernière intervention16 février 2009
-
26 avril 2004 à 15:15
cp71
Messages postés1Date d'inscriptionsamedi 4 septembre 2004StatutMembreDernière intervention 4 septembre 2004
-
4 sept. 2004 à 17:19
bonjour,
voila je me demandais si par hasard il ne serai pas possible d'émuler un frappe au clavier par une procedure.
je sais que cela parait tout a fait futile mais cela s'avererais bien utile pour moi
merci d'avance.
cs_Kenavo
Messages postés702Date d'inscriptionvendredi 21 mars 2003StatutMembreDernière intervention 1 octobre 20095 26 avril 2004 à 17:35
Salut,
Tu peux envoyer les messages WM_KEYDOWN et WM_KEYUP avec la procédure PostMessage. Il y a des paramètres à passer (voir aide) et il faut encore savoir à qui on envoie le message. Tout dépend de ce que tu veux faire.
cs_shakeoff1
Messages postés12Date d'inscriptionmardi 3 février 2004StatutMembreDernière intervention16 février 2009 27 avril 2004 à 10:07
merci pour l'aide,
pourrais tu me donner une exemple d'utilisation stp?
mon but c'est que le programme émule a un moment donner une frappe clavier (n'importe laquelle) dans un champ dbedit a définir.
j'ai eisseillé un truc du style :
...
begin
EditKeyPress(self,#32);
for i := 0 to DMApplic.DSChamp.DataSet.FieldCount - 1 do
begin
Edit := TwwDBEdit(FmAwiphParamListField.FindComponent('Edt' + IntToStr(i)));
...
la déclaration de la procédure Editkeypress:
Procedure EditKeyPress(Sender: Tobject; var Key:Char);
comme vous l'aurrez deviner c'est un procédure qui intercept un frappe clavier .....
cs_Kenavo
Messages postés702Date d'inscriptionvendredi 21 mars 2003StatutMembreDernière intervention 1 octobre 20095 27 avril 2004 à 10:58
Salut,
Voilà un bout de code qui copie caractère par caractère le Texte de Edit1 dans Edit2.
J'utilise ici le message WM_CHAR qui est plus simple que la paire (WM_KEYDOWN, WM_KEYUP)
Kénavo
procedure TForm1.Button1Click(Sender: TObject);
var
Hndl : THandle;
Carac : Char;
begin
Hndl := Edit2.Handle;
If Edit1.Text = '' then
exit;
Carac :=Edit1.Text[1];
// Envoie le caractère Carac à Edit2
PostMessage(Hndl,WM_CHAR,ord(Carac),1);
Edit1.Text := copy(Edit1.Text,2,Length(Edit1.Text)-1);
end;