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