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 :

[treeview] image de fond pour treeview BDS 2006


Sujet :

C++Builder

  1. #1
    Membre Expert
    Avatar de netah25
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    3 233
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 233
    Par d�faut [treeview] image de fond pour treeview BDS 2006
    Bonjour,

    Je cherche a remplacer le fond blanc de mon treeview par une image ...

    Est ce possible ? et si oui comment ?

    Merci a tous et meilleur voeux 2007 !

  2. #2
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par d�faut
    Bonjour,

    pour commencer j'ai essayer ce code mais il presente certaine anomalie :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    TreeView1 -> Canvas -> Draw(0,0, Image1 -> Picture -> Bitmap) ;
    c'est d�j� un commencement ... bon courage

  3. #3
    Membre Expert
    Avatar de netah25
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    3 233
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 233
    Par d�faut
    A oui ...

    effectivement c'est pas vraiment utiliseable ... si quelqu'un a une autre id�e, ou un moyen de valoriser celle - ci


  4. #4
    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
    Salut netah25
    Je pense que c'est possible l'aide en ligne de Canvas dit:
    Donne acc�s au canevas.
    __property Graphics::TCanvas* Canvas = {read=FCanvas};
    Description
    Utilisez la propri�t� Canvas pour dessiner dans le canevas � partir des gestionnaires d'�v�nements OnCustomDraw et OnCustomDrawItem.
    et l'exemple:
    L'exemple suivant illustre comment le gestionnaire d'�v�nement OnCustomDraw dessine le fond d'une vue arborescente avant le dessin des �l�ments et des traits.
    void __fastcall TCustomDrawForm::TVCustomDraw(TCustomTreeView *Sender, const TRect ARect, bool &DefaultDraw)
    {
    //Cet �v�nement doit �tre utilis� pour dessiner les couleurs et images de fond.
    //ARect repr�sente toute la zone client de TreeView.
    //Utilisez le canevas de TreeView pour dessiner.
    //Le dessin d'un bitmap de fond n'est pas vraiment g�r� par CustomDraw,
    //le d�filement peut donc �tre heurt�. Mieux vaut d�river TreeView et g�rer
    //les messages de d�filement.
    TCanvas *pCanvas = TreeView1->Canvas;
    if (None1->Checked) //no picture
    {
    pCanvas->Brush->Color = BkgColorDialog->Color;
    pCanvas->Brush->Style = FBrushStyle;
    pCanvas->FillRect(ARect);
    }
    else
    {
    if (Tile1->Checked) //bitmap en mosa�que
    {
    pCanvas->Brush->Bitmap = Image1->Picture->Bitmap;
    pCanvas->FillRect(ARect);
    }
    else //Etirer le long du canevas.
    pCanvas->StretchDraw(ARect, Image1->Picture->Bitmap);
    }
    DefaultDraw = FDefaultDraw;
    // Initialiser DefaultDraw � false emp�che ici tous les appels de OnCustomDrawItem.
    }
    en esperant t'aider.

  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
    A la suite d'une reponse de bandit boy dans ce post
    J'ai fait un essai chez moi et ca a l'air de marcher.
    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
     
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    TreeView1->Canvas->CopyRect(TreeView1->Canvas->ClipRect, Image1->Canvas, Image1->ClientRect);
    }
    //---------------------------------------------------------------------------
    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
     
    //---------------------------------------------------------------------------
    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    #include <ComCtrls.hpp>
    #include <ExtCtrls.hpp>
    #include <jpeg.hpp>
    #include <Graphics.hpp>
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published: // IDE-managed Components
            TTreeView *TreeView1;
            TButton *Button1;
            TImage *Image1;
            void __fastcall Button1Click(TObject *Sender);
    private: // User declarations
    public:  // User declarations
            __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif
    J'ai place une image dans le TImage apres appuie sur le bouton l'image se place dans le TreeView.
    Les deux composants on la meme dimension.
    A+

  6. #6
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par d�faut
    Bonsoir,

    je viens juste de tester la solution de "Blondelle", elle donne le m�me r�sultat que la m�thode d�j� prsent�e (TTreeViex avec plusieur Items et sSubItem).

    Comment faire pour rem�dier � ce probl�me.

  7. #7
    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

Discussions similaires

  1. 3 Image de fond pour la frame gauche
    Par badway dans le forum Mise en page CSS
    R�ponses: 1
    Dernier message: 01/10/2007, 13h19
  2. image de fond pour une JList
    Par barbiche dans le forum Composants
    R�ponses: 1
    Dernier message: 04/05/2007, 12h10
  3. Image de fond pour pc lock�
    Par shukin dans le forum Windows XP
    R�ponses: 2
    Dernier message: 18/09/2006, 16h58
  4. image de fond dans treeview
    Par chancourt dans le forum Composants VCL
    R�ponses: 4
    Dernier message: 17/08/2005, 16h11
  5. Image de fond pour xdm
    Par BloodyImp dans le forum Applications et environnements graphiques
    R�ponses: 5
    Dernier message: 15/09/2004, 16h47

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