Hello
J'ai un souci avec la définition du parent d'un controle (un bouton). Voilà, suivant le parent que je lui donne, la fiche ou bien un autre composant, l'appel à la fonction OnClick s'effectue ou non. Le bouton en question est déclaré de façon dynamique. Voici le code de ce petit programme, sachant que c'est une fiche qui comporte uniquement un bouton (Button1), un Tedit (Edit1) et un tableau (StringGrid1) :
Header
et pour le cpp :
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 //--------------------------------------------------------------------------- class maClasse : public TObject { public: double rang; TButton *bouton; __published: void __fastcall Event(TObject *Sender); }; //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // IDE-managed Components TEdit *Edit1; TButton *Button1; TStringGrid *StringGrid1; void __fastcall Button1Click(TObject *Sender); private: // User declarations public: // User declarations __fastcall TForm1(TComponent* Owner); };
Ce qui se passe, c'est que quand je définis le parent de Ligne->bouton comme étant le StringGrid, tout se passe comme si l'appel à la fonction Event ne se faisait jamais. Par conter, lorsque je donne la fiche comme parent, là y'a pas de souci. Je dois bien avouer que j'arrive pas à comprendre d'où vient le problème
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 //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { maClasse *Ligne = new maClasse; Ligne->bouton = new TButton(Ligne); Ligne->bouton->Parent=StringGrid1; Ligne->bouton->Left = 10; Ligne->bouton->Top = 10; Ligne->bouton->Height = 30; Ligne->bouton->Width = 30; Ligne->bouton->OnClick=Ligne->Event; } //--------------------------------------------------------------------------- void __fastcall maClasse::Event(TObject *Sender) { Form1->Edit1->Text="toto"; }
Merci pour votre aide !
Partager