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 :

Est il possible d'ajouter la couleur a un TBevel


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut Est il possible d'ajouter la couleur a un TBevel
    Est il possible d'ajouter la couleur a un TBevel en sachant que celui ci n'a pas de Canvas ?

  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 !

    TBevel dérive chez moi de TGraphicControl qui dispose d'un canvas.
    Il faudrait essayer de dériver de TBevel et surcharger la méthode Paint... Juste pour tester !

    A plus !

  3. #3
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Merci henderson:
    J'ai reussi a mettre de la couleur sur le Tbevel mais j'ai un soucis avec deux commandes " Shape " et " Style " celle ci ne fonctionnent plus je ne vois pas pour l'instant comment faire
    le .cpp
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include "BevelColor.h"
    #pragma package(smart_init)
    //---------------------------------------------------------------------------
    // ValidCtrCheck is used to assure that the components created do not have
    // any pure virtual functions.
    //
    static inline void ValidCtrCheck(BevelColor *)
    {
            new BevelColor(NULL);
    }
    //---------------------------------------------------------------------------
    __fastcall BevelColor::BevelColor(TComponent* Owner)
            : TBevel(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall BevelColor::Paint()
    {
    RECT CoRect;
    CoRect.left = 0;
    CoRect.top = 0;
    CoRect.right = Width;
    CoRect.bottom = Height;
    Canvas->Brush->Color = Couleur;
    Canvas->FillRect(CoRect);
    }
    //---------------------------------------------------------------------------
    void __fastcall BevelColor::SetCouleur(TColor Value)
    {
    FCouleur = Value;
    Invalidate();
    }
    //---------------------------------------------------------------------------
    namespace Bevelcolor
    {
            void __fastcall PACKAGE Register()
            {
                     TComponentClass classes[1] = {__classid(BevelColor)};
                     RegisterComponents("Perso", classes, 0);
            }
    }
    //---------------------------------------------------------------------------
    Le .h
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    //---------------------------------------------------------------------------
    #ifndef BevelColorH
    #define BevelColorH
    //---------------------------------------------------------------------------
    #include <SysUtils.hpp>
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <ExtCtrls.hpp>
    //---------------------------------------------------------------------------
    class PACKAGE BevelColor : public TBevel
    {
    private:
            TColor FCouleur;
    protected:
            virtual void __fastcall BevelColor::SetCouleur(TColor Value);
    public:
            __fastcall BevelColor(TComponent* Owner);
            void __fastcall Paint();
    __published:
    __property Align;
    __property Anchors;
    __property TColor Couleur = {read=FCouleur, write=SetCouleur}; // new propriete
    __property Constraints;
    __property Cursor;
    __property Height;
    __property HelpContext;
    __property HelpKeyword;
    __property HelpType;
    __property Hint;
    __property Left;
    __property Name;
    __property ParentShowHint;
    __property Shape;
    __property ShowHint;
    __property Style;
    __property Tag;
    __property Top;
    __property Visible;
    __property Width;
    };
    //---------------------------------------------------------------------------
    #endif

  4. #4
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Bonsoir Blondelle,

    Je ne suis pas très doué, mais est ce que le problème ne vient pas de là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Canvas->Brush->Color = Couleur;
    Canvas->FillRect(CoRect);
    Si je comprends bien, à chaque fois que l'on choisi la couleur, on retrace un rectangle ... Il faudrait prendre en compte le fait qu'un utilisateur puisse changer de couleur en pleine "création" sans pour autant effacer le canvas (sauf erreur de ma part, je pense qu'on l'efface à chaque fois que l'on modifie la couleur de font).

    Bon j'espère ne pas dire de bétise ... mais qui ne tente rien n'a rien

  5. #5
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Merci ero-sennin:
    Je ne pense pas etre plus doue, mais c'est sans doute ce qui se passe, je n'ai pas encore trouve comment retrouver les fonctions qui sont devenues inactives

  6. #6
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Ta méthode paint, c'est une surcharge de la méthode de l'ancêtre?

    Niveau C++, j'ai pas encore attaqué les composants dérivés... je suis plus doué en Delphi .

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

Discussions similaires

  1. Est il possible d'ajouter des composants WPF a un simple form?
    Par NoussaL dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 30/10/2008, 14h12
  2. Réponses: 6
    Dernier message: 08/10/2008, 11h14
  3. Réponses: 7
    Dernier message: 05/05/2008, 13h39
  4. Réponses: 2
    Dernier message: 12/07/2007, 15h07

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