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 ;)