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):
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
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); };
Avec OnPouetInfo déclaré comme tel:
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;
Bien évidement, cela ne marche pas (je ne serais pas ici sinon
Code : Sélectionner tout - Visualiser dans une fenêtre à part void OnPouetInfo(int info);) 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![]()
Partager