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 :

[Débutant creation de composant] Créer une LED numérique


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 5
    Par défaut [Débutant creation de composant] Créer une LED numérique
    Bonjour,
    je suis en quète de créer une led electronique bi couleur. Cependant et malgrès le cours complet de CGI que j'ai attentivement lue, j'ai du mal à créer mon composant. Voila en gros ce dont il s'agit. c'est un composant graphique qui affiche plusieur états. Il faudrais puet être que je sache deja comment réaliser des graphiques. La c'est relativement simple dans mon cas c'est des ronds pleins qui entre en jeu avec une partie en face qui contient le nom de la diode.... etc

    Est ce que quelqu'un pourrais au moin me donner une bonne base sur la partie graphique et comment faire pour qu'elle interagisse avec des controles personalisé ?

    Cela me permetrait d'avancer de ce cotès la

    Amitier

  2. #2
    Membre Expert

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Tout dépend de ce que tu cherches faire et à obtenir.
    - Composant pour disposer de l'objet lors de l'édition ?
    - Class spécifique que l'on utilise dynamiquent ?
    L'objet doit-il pouvoir se connecter avec d'autres objets ?
    Les connections doivent-elles être visibles ?
    Si c'est le cas, et s'il s'agit également d'objets du bestiaire
    électronique, alors je te conseille de faire une class de base à
    partir de laquelle toutes les classes pourront dériver...!
    Celà dit reste à savoir quoi ?

    A plus !

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 5
    Par défaut
    En fait imagine simplement un rod gris foncé. On serais dans le cas ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Led->Active = false;
    Led->Text = "Led 1";
    Si elle s'alume au fixe rouge on aurais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Led->Active = true;
    Led->Color = Red;
    Led->Text = "Led 1"
    ;

    Si elle l'alume eu fixe en vert on aurais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Led->Active = true;
    Led->Color = Green;
    Led->Text = "Led 1";
    Si c'est dans le cas des clignotements on aurais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Led->Active->Strobe = true;
    Led->Color = Red;
    Led->Strobe->On = 10; //Allumé pendant 10secondes
    Led->Strobe->Off = 30; //Eteinte tendant 30secondes
    Led->Text = "Led 1";
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Led->Active->Strobe = true;
    Led->Color = Green;
    Led->Strobe->On = 10; //Allumé pendant 10secondes
    Led->Strobe->Off = 30; //Eteinte tendant 30secondes
    Led->Text = "Led 1";
    Autre cas on remet la led a 0:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Led->Active->Strobe = false;
    Led->Text = "Led 1";
    Le composant se place à l'endroit voulue avec le text que l'on désire. Le composant ne sera pas redimentionable et abordera les état décrit si dessus. Imagine 1 minute tu te connecte a internet par un bouton, tu active la led au clignotement vert, si tu te conecte bien tu passe au vert permanent. en revanche tu aura ou le rouge cas de l'imopossibilité de connexion ou au rouge clignotant auquel cas il n'y a pas de serveur distant et ainsi de suite.

    J'espère avoir donné tout mon cahier des charges enfin du moin le principe du composant que j'aimerais obtenir...

    Merci beaucoup des précision qui m'aiderons pour faire le composant réutilisable dans mes projets 8)

    Amicalement

  4. #4
    Membre Expert

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Par exemple, à partir de :

    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
    class TLed : public TCustomControl
    {
    private :
    TTimer *Timer;
    bool Blinking;
     
    public :
    bool Enabled;
    bool On;
    AnsiString Caption;
    TColor Color;
    int Speed;
        __fastcall TLed(TComponent *Owner);
        __fastcall TLed(TWinControl *P, int X, int Y, TColor C);
        __fastcall ~TLed();
        void __fastcall Paint();
        void __fastcall OnTimerTimer(TObject *Sender);
    };
    Est-ce que tu penses pouvoir faire le reste tout seul ?

    A plus !

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 5
    Par défaut
    En fait je débute completement dans la création de composant et pourtant je n'ai pas le choix, il faut que je commence par quelque chose dans ce domaine pour pigé....

    Mais si j'ai bien compris alors je commence par créer une classe.. Ne faut t il pas dériver de la classe graphique ? Efin si j'ai bien compris le cours de CGI

    Bref ce n'est pas simple mais je vais tenter avec la classe oui mais le composant ne sera pas portable de projet en projet sauf à metre a chaque fois la classe ou alors je n'ai rien pigée

    Bref vos indication me sont plus qu'utile la

    Amitier

  6. #6
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Salut,

    A mon sens la classe indiquée - TCustomControl - est bonne puisque comme l'indique CGi
    il possède en plus de TWinControl un Canvas
    , classe qu'il utilise pour dessiner ses merveilleux petits radiobuttons en forme de losange...

    @ +

  7. #7
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 5
    Par défaut
    Ok est est ce compatible avec ce que m'a mis henderson ?

    Car je supose que c'est loin d'être simple à défaut d'être facile !!!

    Amitier

  8. #8
    Membre Expert

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    SAlut !

    Tu penses faire ça comment ?

    En tant que composant que tu vas rajouter à la palette des composants ?
    En tant que simple classe ?

    Par ailleurs, le TCustomControl se dessine de lui-même en exécutant la méthode Paint
    et par conséquent, exécutera ce que tu lui auras demandé de faire via son propre Canvas.

    Une astuce : si tu veux récupérer la couleur du contrôle Parent pour en faire la couleur de fond
    de ton composant, il faut le faire ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    TColor CouleurFond = Parent->Brush->Color;
    //Donc pour effacer :
    Canvas->Brush->Color = CouleurFond;
    Canvas->Pen->Color = CouleurFond;
    Canvas->Rectangle(0, 0, Width, Height);
    //yapluka pour l'ellipse de la Led et le texte...
    //...
    A plus !

  9. #9
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 5
    Par défaut
    Je pense faire cela en tant que composant dans une suite de composant dont la LED numérique serais le premier 8)

    Si je résume bien la situation il faut que je dérive de TCustomControl ensuite, il faut que j'emploi la methode paint mais est ce un editeur externe a BCB ou alors il faut tout le programmé y compris la partie graphique. Dans les deux cas cela ne me gene pas, j'ai mon temps pour avancer. Ceci dit il faut bien que je débute. Si je crée une classe methode sans doute plus simple mais pas forcément pro avec la suite des évènements (programmes plutot long et lourd a gérer car le composant doit marché sur plusieurs machines).

    Bon alors deja je vais essayer de créer mon dérivé avec la methode CGI.

    En attendant.
    Merci beaucoup tout le monde et a bientot
    Amitier

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

Discussions similaires

  1. [Python 3.X] Hash MD5 pour créer une signature numérique pour un fichier
    Par chacalitox dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 30/06/2014, 16h38
  2. [LV 8.6] Créer une horloge numérique
    Par ptit_knard dans le forum LabVIEW
    Réponses: 5
    Dernier message: 08/07/2010, 00h52
  3. [DataGrid] Créer une colonne numérique
    Par david71 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 04/07/2007, 09h40
  4. [débutante] Ajout de composant dans une TDBGrid
    Par lilo415 dans le forum Delphi
    Réponses: 9
    Dernier message: 28/02/2007, 10h13
  5. [débutant] Comment créer une base ?
    Par laffreuxthomas dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 14/12/2004, 22h12

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