[Debutant] [WxWidgets] Validateur
donc je cree une class :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
class MonValidateurTexte: public wxTextValidator
{
private :
int deb;
int fin;
long* dmetier;
wxString * saisie;
public:
MonValidateurTexte(int , int , wxString * );
MonValidateurTexte(const wxTextValidator& validator);
wxTextValidator* Clone() const;
bool Validate(wxWindow* parent);
virtual bool TransferToWindow();
virtual bool TransferFromWindow();
}; |
j'ai une class fenetre avec des TextCrtl et autres ...
je veux gerer les evenements sur 1 TextCrtl
Code:
1 2 3 4
|
mTexteop1 = new wxString(wxEmptyString);
validatorTextop1 = new MonValidateurTexte(0,20, mTexteop1);
textCtrlop1 = new wxTextCtrl(this,ID_TEXT_CTRL_OP1, "",wxDefaultPosition, wxSize(35,30),0,*validatorTextop1); |
je refini une fonction OnTexteValide avec ID_TEXT_CTRL_OP1 dans la table des evenements
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| void MaFenetre::OnTexteValide(wxCommandEvent &e){
wxMessageBox("OnTexteValide.","A propos !");
if(validatorTextop1->Validate(this) && validatorTextop1->TransferFromWindow())
{ //sa n'arrive pas jusqu'ici car sa plante juste avant
wxMessageBox("dans le if.","A propos !");
wxMessageDialog dialog(this, *mTexteop1, "Texte saisi" , wxYES_NO);
if(dialog.ShowModal() == wxID_YES)
Close(true);
}else{
wxMessageBox("ne rentre pas dans le if.","A propos !");
}
} |
jusque la tout marche :D
je dois redifinir les fonctions :
Code:
1 2 3
| bool Validate(wxWindow* parent);
virtual bool TransferToWindow();
virtual bool TransferFromWindow(); |
c'est la que sa marche pas vraiment.
j'arrive pas a recupérer la valeur a l'interieur de mon textCtrl !
MERCI D'AVANCE