Pointeur de fonction événement.
Bonjour
J'essaie vainement de trouver une documentation claire sur mon problème :
Je voudrais écrire un pgm ne faisant pas appel à l'interface graphique (pas de Form) mais qui utilise certains composants "non visuels" habituellement utilisé sur une interface graphique (par exemple un TTimer).
Je prends pour la suite l'exemple du Timer...
Avec un formulaire, je peux simplement définir sur l'événement OnTimer de mon TTimer, la fonction Timer1Timer (via l'ide Borland).
Code:
1 2 3 4 5
| void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
// instructions.
return ;
} |
Je voudrais donc utilise ce composant TTimer dans une fonction main (par exemple), et lui définir sur son événement OnTimer l'appel d'une fonction.
Mais je n'y arrive pas. (je rappelle que je suis sur un module de type console).
Code:
1 2 3 4 5 6 7
| int main(int argc, char* argv[])
{
TTimer * Timer1 ;
Timer1->OnTimer = ???
return 0;
} |
Merci de m'aider.
Alain as Bartman.
Pointeur de fonction événement.
Citation:
Envoyé par Fbartolo
Donc reprenons dès le départ:
Tu as construit ton projet Console et prenant soins de cocher utilisation de la VCL.
Tu te retrouves avec ta fonction principale Main(..).
et tu rajoute dans ton projet un cadre (Frame), dans lequel tu dépose ton composant TTimer.
Tu l'utilise ensuite comme sur une fiche classique (sauf que le cadre ne s'affiche pas).
prends soins d'incorporer les .h de tes frames et ça roule.
Non non pas du tout...
Je veux construire une console qui utilise un TTimer, mais pas de TForm.
Je déclare donc explicitement le TTimer dans mon code (Cf. main).
Le but est de paramétrer et donc d'armer l'événement OnTimer du TTimer sur l'appel d'une fonction "à moi" que je définis par ailleurs.
Et c'est là que se situe mon pb : comment on fait pour la déclaration et l'affectation du pointeur sur fonction...
Merci.
Re: Pointeur de fonction événement.
Citation:
Envoyé par Bartman
Code:
1 2 3 4 5 6 7
| int main(int argc, char* argv[])
{
TTimer * Timer1 ;
Timer1->OnTimer = ???
return 0;
} |
Je ne sais pas si ça marche sur autre chose qu'une Form mais moi ,pour exemple, j'affecte un code à mes images dynamiques sur le OnClick
Code:
1 2 3 4
| TImage* Image = new TImage(0);
[...]
Image->OnClick = ClicSurImage;
[...] |
Et a coté je crée une fonction..
Code:
1 2 3 4
| void __fastcall TForm_VisuEns::ClicSurImage(TObject *Sender)
{
//Instructions
} |
Par contre il faut que ta fonction ait les mêmes paramêtres que le OnTimer de l'inspecteur d'objets...
Si ça peut t'aider...