Créer un évenement dans une class
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:
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:
1 2 3 4 5
|
Pouet * p = NULL;
p= new Pouet (this);
if(p)
p->OnInfo= OnPouetInfo; |
Avec OnPouetInfo déclaré comme tel:
Code:
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 ;)