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

Composants VCL Delphi Discussion :

Implémentation dynamique du TTimer


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif
    Homme Profil pro
    Analyste-programmeur Delphi
    Inscrit en
    Décembre 2003
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-programmeur Delphi

    Informations forums :
    Inscription : Décembre 2003
    Messages : 490
    Par défaut Implémentation dynamique du TTimer
    Bonjour à tous,

    Voilà déjà quelques temps que j'essaie d'intégrer un composant TTimer à un de mes composants.
    Le problème est que je n'arrive pas à trouver comment surcharger le OnTimer. .

    Quelqu'un saurait-il me débloquer ?

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Montre un bout de code avec ce que tu as essayé de faire.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 937
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 937
    Par défaut
    Il n'y a aucune surcharge du TTimer dans ce que tu veux faire.

    Tu crées leTimer dans le constructeur de ton composant,
    Tu lui assignes un événement de type TNotifyEvent dans OnTimer,
    Tu définis un Interval,
    Et tu le détruis à la destruction de ton composant.


  4. #4
    Membre Expert
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Par défaut
    dans la pratique pour t'aider un peu :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    type
      TMaClasse= classe
      private
        fTimer : TTimer;
      protected
        procedure DoTimer(Sender: TObject);
      public
        constructor Create;
        destructor Destroy; override;
      end;
     
    implementation
     
    constructor TMaClasse.Create;
    begin
      fTimer := TTimer.Create(nil);
      fTimer.OnTime := DoTimer;
    end;
     
    destructor TMaClasse.Destroy;
    begin
      fTimer.Free;
    end;
     
    procedure TMaClasse.DoTimer(Sender: TObject);
    begin
      // ton code ici
    end;
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  5. #5
    Inactif
    Homme Profil pro
    Analyste-programmeur Delphi
    Inscrit en
    Décembre 2003
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-programmeur Delphi

    Informations forums :
    Inscription : Décembre 2003
    Messages : 490
    Par défaut
    Merci à tous .
    Ce sont bien les infos que je n'avais pas trouvées.
    J'ai eu beau fouiller le code source du TTimer.
    J'ai bien essayé de surcharger la procédure Timer ...
    Je n'ai pas pensé au DoTimer, comme le DoExit.
    Je commence donc à supposer que, quand on veut affecter dynamiquement du code à un événement, on le place dans une procédure nommée DoEvènement.
    Ce qui ne s'invente pas !
    Je n'ai rien trouvé d'aussi clair que vos explications concernant le codage des évènements , même pas dans l'excellent ouvrage de Merlin et Paul, en tout cas celui de D7.
    Si quelqu'un peut m'indiquer un ouvrage (même cher) qui traite du sujet, je suis preneur

    Merci encore.

  6. #6
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 937
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 937
    Par défaut
    Le nom de la méthode importe peu . Elle doit juste respecter le prototype attendu par l'événement. Dans le cas de OnTimer, TNotifyEvent (une procédure d'objet avec Sender: TObject en paramètre).

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    type
      TMaClasse= class
      private
        fTimer : TTimer;
      protected
        procedure WakeUp(Sender: TObject);
      public
        constructor Create;
        destructor Destroy; override;
      end;
     
    implementation
     
    constructor TMaClasse.Create;
    begin
      fTimer := TTimer.Create(nil);
      fTimer.OnTimer := WakeUp;
    end;
     
    destructor TMaClasse.Destroy;
    begin
      fTimer.Free;
    end;
     
    procedure TMaClasse.WakeUp(Sender: TObject);
    begin
      // ton code ici
    end;
    Le plus simple si tu as un doute sur l'implémentation d'un événement, ajoute le composant sur une fiche, double-click sur l'événement dans l'inspecteur d'objet et fais un copier/coller de la déclaration dans ton composant .

    Si tout est bon click sur stp.

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

Discussions similaires

  1. scroll bar et implémentation dynamique dans une gtk_vbox
    Par eric1708 dans le forum GTK+ avec C & C++
    Réponses: 11
    Dernier message: 30/09/2013, 08h05
  2. matrice implémentée dynamiquement
    Par samia2 dans le forum C
    Réponses: 3
    Dernier message: 10/06/2013, 11h41
  3. Réponses: 3
    Dernier message: 09/08/2010, 16h26
  4. [JSF] Implémentation d'un formulaire dynamique
    Par Fleep dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/03/2005, 19h00

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