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 :

Comment faire clignoter une ComLed?


Sujet :

C++Builder

  1. #1
    Membre du Club Avatar de vantoff
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 85
    Points : 67
    Points
    67
    Par défaut Comment faire clignoter une ComLed?
    Bonjour,

    j'ai réussis grace au foum à changer la couleur d'une ComLed avec le code suivant:

    ComLed1->Kind = lkGreenLight; Elle s'allume en vert
    L'idéal pour moi est de la vert clignoter en vert.

    Merci.


    Qui dit mieux, Peut le mieux!!!

  2. #2
    Membre habitué

    Profil pro
    Cadre
    Inscrit en
    Mars 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cadre

    Informations forums :
    Inscription : Mars 2006
    Messages : 132
    Points : 168
    Points
    168
    Par défaut
    Ben si tu peux l'éteindre, fait une boucle qui l'allume et qui l'éteint...

    Du bon sens tu auras
    Du bon sens tu auras encore
    Du bon sens tu auras toujours
    http://emilien.bresson.free.fr

  3. #3
    Membre du Club Avatar de vantoff
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 85
    Points : 67
    Points
    67
    Par défaut Comment faire clignoter une ComLed1
    Désolé tu n'y est pas.

    Ma led s'alume lorsque j'ouvre mon port à l'aide d'un bouton de connexion.
    si je fais une boucle....................je te laisse imaginer la suite . A moins que...

    Le bon sens, qui l'a vraiment?

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 390
    Points : 1 777
    Points
    1 777
    Par défaut
    Salut !

    En utilisant probablement un TTimer permettant à intervalle régulier de modifier une propriété de l'objet qui définit son apparence.

    Dans la OnTimer du timer, il suffit de mettre la propriété de l'objet en bascule (flip flop):

    if(Led->Etat == allumee) Led->Etat = eteinte
    else(Led->Etat = allumee)

    Si cette propriété est du type booléen, le traitement se réduit à faire :

    Led->Etat = !Led->Etat

    Si l'effet n'est pas immédiat (ce qui serait étonnant mais parfois...) alors on peut rajouter :

    Led->Repaint();

    Comme je ne connait pas le composant, je te donne juste l'idée.

    A noter que je n'ai pas mis les balises de code volontairement !

    A plus !

  5. #5
    Membre du Club Avatar de vantoff
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 85
    Points : 67
    Points
    67
    Par défaut Comment faire clignoter une ComLed1
    J'ai faits ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    void __fastcall TForm1::Timer1Timer(TObject *Sender)
    {
     
     if(ComLed->State==IsOn)
      {
       ComLed->State==IsOff
     
     else
     {
          ComLed->State == IsOn)
     }
       ComLed->Repain();
       }
    }
    Mais ça ne marche pas: Le compilot dit: Symbole IsOn non définit or cette proprieté est dans l'inspecteur d'objet de mon composant( ComLed): c'est la Proprieté State=IsOn ou IsOff


  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 390
    Points : 1 777
    Points
    1 777
    Par défaut
    Salut !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(ComLed->State == IsOn) ComLed->State = IsOff;
    else ComLed->State = IsOn;
    ComLed->Repaint(); //<<< tester si c'est nécessaire
    C'est tout ce que je peux dire pour l'instant !

    A plus !

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 390
    Points : 1 777
    Points
    1 777
    Par défaut
    Salut !

    Si on considère que la led ne peux clignotter que si le port est ouvert, on peut laisser le timer tourner en permanence en encadrant le flip flip avec un test :

    si Comport est ouvert alors on execute le flip flop
    sinon si la Led est allumée alors on éteint la Led

    Je pense que l'instruction Repaint() n'est pas indispensable car le rafraichissment semble être pris en compte dans la gestion de la propriété (comme les sources sont rédigées pour Delphi...). Il suffit de faire le test avec et sans !

    Pour ce qui est des variables de la propriété State de la led :

    TLedState = (lsOff, lsOn);

    je pense pouvoir supposer qu'il s'agit d'une énumération à la Delphi.

    Attention à la confusion possible entre lsOn et lsOff (ce qui semble correcte) et IsOff ou IsOn (qui ne le sont pas) !!! Je me suis fait avoir aussi !

    A plus !

  8. #8
    Membre du Club Avatar de vantoff
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 85
    Points : 67
    Points
    67
    Par défaut
    Le compilot dit: Symbole IsOn non définit
    Options et avertissements non restaurés
    Identificateur de membre attendu

    là je cogne malgré votre aide

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bonjour

    tu ecrit I (i) mais ses un l (L) que lont doit ecrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    void __fastcall TForm1::Timer1Timer(TObject *Sender)
    {
    if(ComLed1->State ==lsOn)
    ComLed1->State =lsOff ;
    else
    ComLed1->State =lsOn;
    }
    elle flasche bien ici a+

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

Discussions similaires

  1. Comment faire clignoter une image ?
    Par smaella dans le forum Imagerie
    Réponses: 5
    Dernier message: 01/07/2009, 16h51
  2. Réponses: 1
    Dernier message: 04/08/2006, 12h47
  3. [VB6] COmment Faire Clignoter une image ?
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 25/04/2006, 11h29
  4. Réponses: 2
    Dernier message: 13/12/2004, 15h16
  5. [Label] Comment faire clignoter un label ?
    Par delphicrous dans le forum Composants VCL
    Réponses: 7
    Dernier message: 09/07/2004, 16h50

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