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 :

Modifier la couleur d'une forme sélectionner


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Par défaut Modifier la couleur d'une forme sélectionner
    Bonjour,

    Je dois ajouter à un dessinateur la fonction de pouvoir changer de couleur à une forme qui se trouve dans une TPaintBox, mon déssinateur possede un mainmenu.
    J'aimerais intégrer une palette de couleur dans ce mainmenu mais je ne sais pas comment faire ou si cela est possible, sinon je peux tout simplement intégrer une TColorBox. Pour le changement de couleur je ne sais pas du tout comment ca marche

    Merci de votre aide

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Par défaut
    Personne n'a de réponse pour moi ?

  3. #3
    Membre Expert
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Par défaut
    Qu'entendez-vous par forme ?

    Voulez-vous dire la fenêtre (qui porte le nom de TForm) ou bien un dessin dans le PaintBox qu'il faudrait colorier d'une autre couleur ?

    À bientôt
    Gilles

  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 !

    Pour le TColorDialog, la coleur sélectionnée est donnée par la propriété Color.
    Donc, par exemple, pour modifier la couleur de Pen :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(ColorDialog1->Execute())
        {
        PaintBox1->Canvas->Pen->Color = ColorDialog1->Color;
        }
    On sait donc aussi faire pour Brush.

    Bien sûr, le code définitif dépend du développement lié à la mise en oeuvre du dessin (dessin à main levée ou objétisation des formes géométriques).

    A plus !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Par défaut
    Citation Envoyé par Gilles Louïse Voir le message
    Qu'entendez-vous par forme ?

    Voulez-vous dire la fenêtre (qui porte le nom de TForm) ou bien un dessin dans le PaintBox qu'il faudrait colorier d'une autre couleur ?

    À bientôt
    Gilles
    Il s'agit de la forme dans le PaintBox (carré, triangle ...)

    Es t-il possible d'insérer une palette de couleur dans un MainMenu ?

  6. #6
    Membre Expert
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Par défaut
    Je ne vois pas de problème.

    Mettez un TColoDialog sur la forme et faites-le apparaître au moment du clic de votre fonction dans le menu. À partir de là, vous pouvez remplir la forme.

    La fonction du menu ressemble à ceci (si ce n'est qu'il faudra donner les vraies coordonnées de remplissage)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void __fastcall TForm1::Paint1Click(TObject *Sender)
    {
    if(ColorDialog1->Execute())
       {
       BM->Canvas->Brush->Color=ColorDialog1->Color;
       BM->Canvas->FillRect(Rect(10,10,200,200));
       PBPaint(NULL);
       }
    }
    Ce code ouvre le TDialogColor et indique la couleur de remplissage. BM est un bitmap à déclarer dans la classe prinicpale et à créer au moment de la construction de la forme, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    __fastcall TForm1::TForm1(TComponent* Owner)
       : TForm(Owner)
    {
    BM=new Graphics::TBitmap();
    BM->Width=Screen->Width;
    BM->Height=Screen->Height;
    BM->Canvas->FillRect(Rect(0,0,PB->Width,PB->Height));
    }
    Détruice ce Bitmap au moment du Destroy.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void __fastcall TForm1::FormDestroy(TObject *Sender)
    {
    delete BM;
    }
    Et forcer la copie du bitmap au moment du OnPaint de la PaintBox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void __fastcall TForm1::PBPaint(TObject *Sender)
    {
    PB->Canvas->Draw(0,0,BM);
    }
    Voyez mon site, il y a des élements sur le PaintBox.

    À bientôt
    Gilles

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Par défaut
    Il y a t'il quelque chose à ajouter pour PBPaint(NULL); et BM->Canvas->FillRect(Rect(0,0,PB->Width,PB->Height));

    Car il me trouve des erreur à cause des PB, peu être une include ???

    Et comment ce déclare le BM avec ceci ?
    Graphics::TBitmap *BM;

    Merci de votre réponse

Discussions similaires

  1. Modifier le texte d'une forme sélectionnée avec VBA
    Par Graphiste Powerpoint dans le forum VBA PowerPoint
    Réponses: 5
    Dernier message: 03/06/2009, 11h11
  2. Réponses: 4
    Dernier message: 28/03/2009, 19h01
  3. modifier la couleur d'une forme libre
    Par TheRealMike dans le forum Excel
    Réponses: 3
    Dernier message: 25/07/2007, 18h33
  4. [C#] [DataGrid] Modifier la couleur d'une ligne
    Par nalaya dans le forum Windows Forms
    Réponses: 4
    Dernier message: 27/08/2004, 12h11
  5. Réponses: 9
    Dernier message: 12/08/2002, 07h38

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