Bonjour à tous,
Je travaille en C++ builder 6 (choix du client).
Malgré mes recherches et l'aide apporté ici je n'arrive pas à faire un truc qui semble très simple :
J'ai créé un Frame que je vais utiliser dans plusieurs Form (application multipage). La plupart du temps le Frame sera invisible à l'apparition du Form et n'apparaitra que sur certaines actions opérateur. Afin d'éviter de coder dans chaque Form utilisant le Frame ce que je veux faire à chaque apparition du Frame (vous suivez?), je veux ajouté un EVENT à la Frame sur la modification de sa propriété : Visible.
cad que je veux exécuter du code chaque fois que la propriété Frame->Visible passe de true à false ou l'inverse.
Ci dessous le code que j'ai fait
Le .h :
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37 #ifndef pop_clavierH #define pop_clavierH #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ExtCtrls.hpp> class Tcadre_clavier : public TFrame { __published: // IDE-managed Components TButton *bp_a; TButton *bp_z; TButton *bp_e; TButton *bp_r; TButton *bp_t; [...] TButton *bp_egal; //---------------------------------------------- void __fastcall bp_aClick(TObject *Sender); void __fastcall bp_zClick(TObject *Sender); private: // User declarations public: // User declarations __fastcall Tcadre_clavier(TComponent* Owner); //propriété rajouté __property bool Visible = {read=FVisible, write=SetVisible, default = false}; protected: virtual void __fastcall SetVisible(bool value); }; //------------------------------------------------------------------------ extern PACKAGE Tcadre_clavier *cadre_clavier; //------------------------------------------------------------------------ #endif
Je pense que je ne maitrise pas encore la structure générale du logiciel mais je pense que résoudre ce point me permettrai de mieux le comprendre.
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 #include <vcl.h> #pragma hdrstop #include "pop_clavier.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" Tcadre_clavier *cadre_clavier; //------------------------------------------------------------------------ __fastcall Tcadre_clavier::Tcadre_clavier(TComponent* Owner) : TFrame(Owner) { } //------------------------------------------------------------------------ void __fastcall Tcadre_clavier::SetVisible(bool value); { FVisible = value; ShowMessage("Ca marche!"); } //------------------------------------------------------------------------
J'espère avoir été suffisamment clair et en attendant vos réponses, je vous souhaite à tous une bonne journée.
noahsaga
Partager