Bonjour à tous,
je cherche a créer une méthode dans une class créée par mes soins, mais cela ne marche pas...
Voici le principe:
Cette class doit utiliser une objet qui genere automatiquement des appels de méthodes. Pour faire simple, prenons l'exemple de TTimer.
Si ma class (auquelle on pourait donner le doux nom de 'Pouet') comporterait un Timer et que dans la fonction OnTimer de ce même timer, je voudrais créer une méthode pour qu'elle soit accessible depuis la fiche utilisant la classe 'Pouet'...
D'un point de vue code, j'en suis là (cela parmetera peut être d'éclaircir mon pb ):
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
class Pouet{
    private:
        TTimer  *  timer;
        int           rslt;
        void __fastcall TimerOnTimer(TObject *Sender){
                /* Tout pleins de calculs ;) */
                if(OnInfo) OnInfo(rslt);
        };
    public:
        Pouet(TComponent* AOwner) { // constructeur
            timer = new TTimer(AOwner);
            if(timer) {
                timer->OnTimer = TimerOnTimer;
                timer->Enable = true;
            }
        };
        ~Pouet() { // Destructeur par défaut
            if(timer){
                timer->Enabled = false;
                delete timer;
            }
        };
        // Pointeur vers une fonction
        void *OnInfo(int pouet);
};
Et du coté de la Form utilisant cette belle class Pouet:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
    Pouet * p = NULL;
    p= new Pouet (this);
    if(p)
        p->OnInfo= OnPouetInfo;
Avec OnPouetInfo déclaré comme tel:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
void OnPouetInfo(int info);
Bien évidement, cela ne marche pas (je ne serais pas ici sinon ) et j'ai essayé moultes variantes en vain...
Je fais donc apelle à votre savoir et votre expériance

Merci pour votre aide!

PS: il y a peut être deux trois erreurs dans le code retranscrit plus haut dues à un mauvais recopiage et/ou simplification