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 !
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 !
Bonjour,
pour commencer j'ai essayer ce code mais il presente certaine anomalie :
c'est déjà un commencement ... bon courage
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 TreeView1 -> Canvas -> Draw(0,0, Image1 -> Picture -> Bitmap) ;
Les règles Les cours La fonction rechercher
N'oubliez pas de mettre en et de voter.
La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !
A oui ...
effectivement c'est pas vraiment utiliseable ... si quelqu'un a une autre idée, ou un moyen de valoriser celle - ci
Salut netah25
Je pense que c'est possible l'aide en ligne de Canvas dit:
et l'exemple: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.
en esperant t'aider.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.
}
--
Plutot que d'essayer de réinventer la roue, apprenons à nous en servir
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
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 //--------------------------------------------------------------------------- #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); } //---------------------------------------------------------------------------
J'ai place une image dans le TImage apres appuie sur le bouton l'image se place dans le TreeView.
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
Les deux composants on la meme dimension.
A+
--
Plutot que d'essayer de réinventer la roue, apprenons à nous en servir
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.
Les règles Les cours La fonction rechercher
N'oubliez pas de mettre en et de voter.
La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !
Un lien qui pourra peut etre aider.
--
Plutot que d'essayer de réinventer la roue, apprenons à nous en servir
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager