IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++/CLI Discussion :

Utilisation de System::Timers


Sujet :

C++/CLI

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    122
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 122
    Par d�faut Utilisation de System::Timers
    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

    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;
    }
    Bon, j'arrive � cr�er des �v�nement , pour manipuler diff�rents objets que j'ajoute sur la winForm.

    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:

    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);
    }
    apr�s je dois d�finir la fonction "action", c'est l� ou y a les erreurs.
    donc j'ai fais:
    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";
    			 }
    Je build , voici l'erreur que j'obtiens :
    1>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)
    Donc j'ai essay� d'ajouter static pour la fonction action comme ceci
    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";
    }
    j'obtiens cette erreur :
    error C2227: la partie gauche de '->Text' doit pointer vers un type class/struct/union/g�n�rique
    je pense que j'ai mal d�finie ma fonction action, alors ma question est comment faire �a proprement.
    Merci toute aide est appr�ci�e

  2. #2
    Membre chevronn�

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Par d�faut
    Salut,
    Tu te complique la vie inutilement!
    Il faut utiliser le Timer comme n'importe quel contr�le (un bouton , une textBox... )!

    Prends tout simplement un Timer dans la "boite � outils" ( il est en bas de la partie "Composants" ) et fais le glisser n'importe ou sur ta feuille et il apparaitra en dessous de celle-ci.

    En suite, dans ta fonction bouton1_click tu met par exemple :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e)
    {
         timer1->Interval = 4000;// réglage d'une tempo de 4000ms
         timer1->Enabled = true;//démarrage du timer
    }
    puis cr�e la fonction tick dans les propri�t�s du timer rubrique �v�nements:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    System::Void timer1_Tick(System::Object^  sender, System::EventArgs^  e)
    		 {
    			 textBox1->Text="bouton cliqué y a 4 secondes";
                             timer1->Enabled = false;//pour arrêter le timer1 ( sinon, il se redéclenchera toutes le 4s! )
    		 }
    Et voil�, �a doit marcher ( enfin je crois )
    Amuse toi bienBye.

  3. #3
    Membre �clair�
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    243
    D�tails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 243
    Par d�faut
    Citation Envoy� par bertry Voir le message

    Et voil�, �a doit marcher ( enfin je crois )
    Je confirme, c'est comme cela que j'utilise les timers et cela marche nickel ..

    Bon courage

  4. #4
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    122
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 122
    Par d�faut Merci
    oui �a marche, merci pour l'astuce, enfin, j'avoue que j'oublie les "boites � outils" de visual studio et j'ai tendance � cod� � la main, vu que j'ai appris � le faire de cette fa�on.

    Quoi que , merci infiniment.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. utilisation d'un timer
    Par jiraya43 dans le forum MFC
    R�ponses: 2
    Dernier message: 04/05/2006, 16h52
  2. [D�butant] Utilisation de "system"
    Par SebRs dans le forum D�buter
    R�ponses: 16
    Dernier message: 25/04/2006, 23h44
  3. [D�butant] Utilisation d'un timer
    Par mickael777 dans le forum MFC
    R�ponses: 7
    Dernier message: 28/10/2005, 11h40
  4. [Kylix] PB Utilisation libc.system
    Par Louargant Bertrand dans le forum EDI
    R�ponses: 1
    Dernier message: 19/06/2003, 18h36
  5. [Strat�gie] Utiliser un systeme de bufferisation
    Par arnolanf dans le forum VB 6 et ant�rieur
    R�ponses: 4
    Dernier message: 31/10/2002, 16h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo