Bonjour,
J'essaie d'utiliser la classe Timers dans un projet C++/CLR
Donc j'ai créé un projet CLR sous VISUAL STUDIO 2005.
j'ai une winForm1 auto générée (Form.h) et un main.cpp pour la lancer
Bon, j'arrive à créer des événement , pour manipuler différents objets que j'ajoute sur la winForm.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 int main(array<System::String ^> ^args) { // Activation des effets visuels de Windows XP avant la création de tout contrôle Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); // Créer la fenêtre principale et l'exécuter Application::Run(gcnew Form1()); return 0; }
Maintenant , je veux maitriser l'utilisation des system::timers, enfait plus concrètement , je veux qu'une fonction se lance à chaque laps de temps
J'ai vu cet l'exemple :
http://msdn.microsoft.com/fr-fr/libr...ers.timer.aspx
et qui fonctionne parfaitement sur console. (et d'ailleurs je comprend pas pour quoi ça marche pas sur un projet winForm)
Donc j'ai créé un événement click pour un bouton que j'ai ajouté.
ensuite j'ai inséré ces 3 lignes:
après je dois définir la fonction "action", c'est là ou y a les erreurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { Timers::Timer^ _timer1; _timer1 = gcnew Timers::Timer(4000); _timer1->Elapsed += gcnew ElapsedEventHandler(action); }
donc j'ai fais:
Je build , voici l'erreur que j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 private : System::Void action(Object^ source, ElapsedEventArgs^ e ){ textBox1->Text="bouton cliqué y a 4 secondes"; }
Donc j'ai essayé d'ajouter static pour la fonction action comme ceci1>c:\[...]\Form1.h(210) : error C3867: &'sound::Form1::action'*: liste d'arguments manquante dans l'appel de fonction*; utilisez 'sound::Form1::action' pour créer un pointeur vers membre
1>c:\[...]\Form1.h(210) : error C3350: 'System::Timers::ElapsedEventHandler'*: un constructeur délégué attend 2 argument(s)
j'obtiens cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 private : static System::Void action(Object^ source, ElapsedEventArgs^ e ){ textBox1->Text="bouton cliqué y a 4 secondes"; }
je pense que j'ai mal définie ma fonction action, alors ma question est comment faire ça proprement.error C2227: la partie gauche de '->Text' doit pointer vers un type class/struct/union/générique
Merci toute aide est appréciée
Partager