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 :
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
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
#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!");
}
//------------------------------------------------------------------------
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.

J'espère avoir été suffisamment clair et en attendant vos réponses, je vous souhaite à tous une bonne journée.

noahsaga