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++Builder Discussion :

création Timer1 TTimer [Débutant]


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut création Timer1 TTimer
    bonjour ,

    Je cherches des infos pour la création de Evénements Timer1->Ontimer .
    Je voudrai lancer depuis une dll un timer .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    TTimer * Timer1 = new TTimer (NULL ) ;
    Timer1->Intervale = 5000 ;
    Timer1->Enable =true ;
    Timer1->Ontimer = ???
    merci

  2. #2
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Salut,
    il suffit que tu écrive une méthode ayant le prototype suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void __fastcall Timer1Timer(TObject *Sender)
    Ensuite, il te suffira de l'affecter à l'évènement OnTimer du ou des Timer que tu souhaite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Timer1->OnTimer = Timer1Timer;

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut
    merci !

  4. #4
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut
    G cette erreur de compilation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Timer1->OnTimer = Timer1Timer;
    [BCC32 Erreur] ETH.cpp(190): E2034 Impossible de convertir 'void(TObject *)' en 'TNotifyEvent'

    merci

  5. #5
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 41
    Par défaut
    Ta fonction "Timer1Timer" fait bien partie d'une classe ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut
    non mais je pourrais

  7. #7
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 41
    Par défaut
    Ta fonction doit faire partie d'une classe.

  8. #8
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 081
    Par défaut
    Citation Envoyé par pottiez Voir le message
    il suffit que tu écrive une méthode ...
    le terme de méthode n'était pas anodin ! il designe une fonction d'une classe !

    Tu peux aussi dériver TTimer pour éviter de créer un autre objet juste pour avoir la méthode !
    En Delphi, on peut utiliser une méthode de classe, dommage, en C++ Builder, ce n'est pas possible !

    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
    class TTimerInDLL : public TTimer
    {
    	typedef TTimer inherited;
     
    public:
    	__fastcall virtual TTimerInDLL(TComponent* AOwner) : inherited(AOwner)
      {
        Interval = 5000;
        Enabled = true;
        OnTimer = InternalEventTimerHandler;
      }
     
      void __fastcall InternalEventTimerHandler(TObject *Sender)
      {
        // ...
      }
    };
    En Delphi, on pourrait redifinir la méthode "dynamique" Timer, mais je ne sais pas si le virtual c++ est compatible avec dynamique __declspec(dynamic)

    ce qui donnerait

    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
    class TTimerInDLL : public TTimer
    {
    	typedef TTimer inherited;
     
    public:
    	__fastcall virtual TTimerInDLL(TComponent* AOwner) : inherited(AOwner)
      {
        Interval = 5000;
        Enabled = true;
      }
     
    protected:
      /*override*/void __fastcall Timer(void)
      {
        // ...
      }
    };
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  9. #9
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut
    je vais l'intégrer dans un class .

    merci pour les infos

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Classe pour la création d'un graphe xy
    Par Bob dans le forum MFC
    Réponses: 24
    Dernier message: 03/12/2009, 17h20
  2. Création dynamique de TImages
    Par Dric dans le forum C++Builder
    Réponses: 10
    Dernier message: 08/07/2002, 12h36
  3. [Kylix] Création d'un fichier lien
    Par DrQ dans le forum EDI
    Réponses: 2
    Dernier message: 14/05/2002, 21h30
  4. Création image BMP
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 16h04

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