Evènement d'un formulaire à l'autre

Résolu
sawbo Messages postés 4 Date d'inscription jeudi 11 décembre 2003 Statut Membre Dernière intervention 30 août 2008 - 30 août 2008 à 15:35
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 30 août 2008 à 19:47
Bonjour,

J'ai 2 formulaire:

Fiche1 avec un Tedit Edit1
Fiche2  avec un Tedit Edit2

Je veux que lorsque j'écris dans Edit1 cela se transmet dans Edit2 de la fiche 2  par évènement.

Dans l'évènement du keydown de Edit1 j'aimerais appeler l'évènement de Edit2 pour qu'il est le même comportement.

Comment j'appelle l'évènement de Edit2?
Avez-vous des bon tutoriaux pour delphi et la gestion des évènements en delphi?

Merci

sawbo

6 réponses

sawbo Messages postés 4 Date d'inscription jeudi 11 décembre 2003 Statut Membre Dernière intervention 30 août 2008
30 août 2008 à 19:40
Bon bien je me répond moi même , avis aux intéressé.

Je n'ai pas compris pourquoi lorsque l'on appelle l'évènement directement cela ne fonctionne pas. Par contre, j'ai fait une solution une peu plus bas niveau. Tout ce passe dans l'évènement du Keypress du Form1.Edit1

procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);
Var
temp : Integer;
begin
 SendMessage(Form3.Edit1.Handle,WM_CHAR, Integer(Key);,0);
end;

Voila, on utilise le sendMessage standard. Pourquoi ce compliqué la vie. de cette facon control recoit le caractère et passe dans l'évènement OnKeyPress du controle. Comme ca si on veut on peu le manipuler autrement.

Merci a tous et a moi-même!

sawbo
3
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
30 août 2008 à 16:54
procedure TForm1.Edit1OnChange(Sender: TObject);
begin
Form2.Edit2.Text := Edit1.Text;
end;

Quand tu écriras dans Edit1, Edit2 écrira la même chose.

Déclare l'unité de la Form2 dans le Uses de la Form1.
Et lie cet evenement dans le OnChange du Edit1.

Cordialement, Bacterius !
0
sawbo Messages postés 4 Date d'inscription jeudi 11 décembre 2003 Statut Membre Dernière intervention 30 août 2008
30 août 2008 à 17:11
Merci.

Mais j'aimerais quand même savoir comment faire pour générer l'évènement. J'imagine qu'en delphi tu peux appeler les évènements.

par exemple :

TForm1.Edit1OnKeyPres(Sender: TObject; var Key: Char);
begin
//bien sur OnkeyPress doit etre assigne sinon ca marche pas
 Form2.Edit2.OnKeyPress(Form2.Edit2, Key);
end;

Mais cela ne fonctionne pas . Le Tedit reste toujours vide.

Solution??

sawbo
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
30 août 2008 à 18:12
bonsoir,
ton évènement  Form2.Edit2.OnKeyPress n'existe pas...

cantador
0

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

Posez votre question
sawbo Messages postés 4 Date d'inscription jeudi 11 décembre 2003 Statut Membre Dernière intervention 30 août 2008
30 août 2008 à 18:58
Bien oui ,
Les TEdit on les évènement suivant pour le clavier :
 
OnKeyPress
OnKeyDown
OnKeyUp

Donc, j'ai une méthode

TForm2.Edit2KeyPress qui est associé à l'évènement
>
procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);
begin end;

et dans mon Form1 jai la même chose pour sont Tedit.

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 Form2.Edit2KeyPress(Form2.Edit2, key)
end;

Le Form2.Edit2 ne change pas ...... donc, je n'appelle probablement pas le bon évènement.

Comment on utilise les évènements?

Merci

sawbo
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
30 août 2008 à 19:47
SendMessage(Form3.Edit1.Handle,WM_CHAR, Integer(Key);,0);



ne peut pas fonctionner avec un ';' à l'intérieur..

cantador
0
Rejoignez-nous