J'ai un problème avec les évènement d'un composant que je crée qui est sous composant de TEdit.
L'évènement onchange est bien detecté , il affiche donc dans ma Listbox qu'il y a un changement qui s'effectue dans mon composant mais par contre quand je fait un entrée ou un escape il ne m'affiche rien alors qu'il devrait
Voila la partie du code de l'unité du composant qui traite ces 3 évenements:
Et voici la partie du code qui traite ces évenements dans la Mainfenetre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 ... published property Options: TPslEditOptions read FOptions write FOptions; property OnValidate : TNotifyEvent read FOnValidate write FOnValidate; property OnEscape : TNotifyEvent read FOnEscape write FOnEscape; end; // end des declarations implementation procedure TPslEditEx.KeyPressed (var Key: Char); begin { A completer } if Key=#13 then doOnValidate else if Key=#27 then doOnEscape; end; procedure TPslEditEx.doOnValidate; begin FOnValidate(self); end; procedure TPslEditEx.doOnEscape; begin FOnEscape(self); end;
Il est évident que j'ai du encore écrire 2, 3 bêtises qui font que ca déconne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 procedure TMainFenetre.FormCreate(Sender: TObject); begin keditTP:=TPslEditEx.create(self); keditTP.Parent:=self; keditTP.Left:=50; keditTP.Top:=50; keditTP.Align:=alTop; keditTP.Name:='Test'; //Name:='Test'; //Align:=alTop; with keditTP do begin //Options:=[eoValidateOnReturn, eoRestoreOnEscape] keditTP.KeyPressed(key); keditTP.OnChange := EditChange; keditTP.OnValidate := EditValidate; keditTP.OnEscape := EditEscape; end; end;
Je pense que c'est a cause du key car je ne met rien dedans je voulais faire un readkey mais il faut utiliser ctr or ma version ne semble pas connaitre quand je le met dans uses, alors je veus passer outre pour connaitre la key mais comme je trouve pas
Partager