Bonjour,
J'essaie d'implémenter un validateur "perso" dérivé de la classe wxTextValidator sur un wxTextCtrl.
Le départ semble bon, l'appelle la fonction this->InitDialog (); remplie son rôle en exécutant automatiquement la fonction TransferToWindow de mes différents validateurs.
Maintenant me voila au pied du mur concernant la gestion des évènements. Comment faire un appel automatique sur la fonction Validate de mes validateurs lorsqu'un évènement clavier à lieu sur les différents composants wxTextControl
Existe t-il une fonction général a appeler ?!
J'ai regardé du coté des évènements, j'arrive à intercépter un évènement mais le problème devient plus compliqué lorsque je dois appeler ma fonction Validate du validateur qui est ancré dans ce lui ci.
J'ai aussi pensé à l'instancier en dehors du constructeur wxTextCtrl, mais il doit bien exister une méthode plus propre étant donné que les validateurs de base sont traités comme cela
mon validateur :
Voici son implémentation dans l'application :
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 #include <wx/valtext.h> class myTextValidator : public wxTextValidator { private: int min; int max; int *val; public: myTextValidator (int, int, int *); myTextValidator (const myTextValidator &); wxObject* Clone () const; bool TransferFromWindow (); bool TransferToWindow (); bool Validate (wxWindow*); };
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 int test = 10; wxTextCtrl *textCtrl1 = new wxTextCtrl (this, ID_TEXT_OPERANDE_1, wxEmptyString, wxDefaultPosition, wxSize(30,-1), 0, myTextValidator(0, 20, &test)); boxSizer1->Add (textCtrl1);
Partager