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

Composants VCL Delphi Discussion :

[TTreeView] Comment rendre l'arrière plan des textes transparent ?


Sujet :

Composants VCL Delphi

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 73

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    Points : 126
    Points
    126
    Par défaut [TTreeView] Comment rendre l'arrière plan des textes transparent ?
    Bonjour,

    Je cherche à modifier un treeview pour avoir une image de fond.
    pour l'image de fond je n'ai pas de soucis, par contre le texte de mes nœuds apparait sur un fond blanc.
    Comment rendre le fond du texte transparent ?
    J'ai essayé SetBkMode, mais sans résultat.

    Quelqu'un aurait il une idée.

    Merci

    Marc Salama

  2. #2
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    Essaye de mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Canvas.Brush.Style := bsClear;
    Juste avant de dessiner le texte
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 73

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    Points : 126
    Points
    126
    Par défaut
    Bonjour,
    Merci pour ta suggestion. Je l'avais déjà testée, mais j'ai toujours mon fond blanc

    Marc Salama

  4. #4
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Est-ce toi qui dessines les textes?
    Si oui, pourrais-tu nous donner ton code de dessin?
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  5. #5
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 73

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    Points : 126
    Points
    126
    Par défaut
    Non, je ne le dessine pas moi même, j'ai positionnée la propriété dans l'évènement
    TreeViewGr1AdvancedCustomDrawItem.
    En fait j'ai fait pas mal d'essais dont un où je redessine le texte :

    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
     
    procedure TForm30.Button1Click(Sender: TObject);
    var
      C: TControlCanvas;
      i: Integer;
      rect: TREct;
      NodeRacine, N: TTreeNode;
    begin
     
      C := TControlCanvas.Create;
      c.Control := TreeViewGr1;
     
     
      c.Brush.Style := bsClear;
      c.Brush.Bitmap := TreeViewGr1.Glyph;
     
      SetBkMode(TreeViewGr1.Handle, TRANSPARENT);
      TreeView_SetTextColor(C.Handle, CLR_NONE);
      TreeView_SetBkColor(C.Handle, TRANSPARENT);
      for i := 0 to TreeViewGr1.Items.Count - 1 do
      begin
        Rect := TreeViewGr1.Items[i].DisplayRect(True);
        C.FillRect(rect);
     
        SetBkMode(TreeViewGr1.Items[i].Handle, Transparent);
        TreeViewGr1.Canvas.Brush.Style:=bsClear;
        c.TextOut(Rect.Left + 2, REct.top + 1, TreeViewGr1.Items[i].TExt);
     
     
      end;
     
     
    end;
    MS

  6. #6
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Utilise les balises CODE stp

    Sinon, tu fais déjà une erreur: peindre sur un Canvas ne se fait que lors d'un OnPaint (dans ton cas, le OnCustomDrawItem). Si tu veux dessiner correctement, il faut déjà que tu corriges ça.

    Esnuite, tu te mélanges les pinceaux: il est inutile de créer un Canvas puisqu'il y en a déjà un normalement.La routine donnerait plutot quelque chose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      with Machin.Canvas do
      begin
        Brush.Color := clRed;
         FillRect(aRect);
        Brush.Style := bsClear;
        TextOut(X, Y, 'Prosper youplaboum, c''est le roi du pain d''épice');
      end;
    Ceci est un exemple d'utilisation
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  7. #7
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 73

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    Points : 126
    Points
    126
    Par défaut
    Merci, je pense que je vais m'en sortir.
    MS

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

Discussions similaires

  1. rendre l'arrière plan de static text transparent
    Par Marie_7 dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 06/12/2012, 21h19
  2. [TABLE] Couleurs d'arrière-plan des TR alternées
    Par arkienou dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 17/02/2007, 15h48
  3. [XHTML] Comment centrer son arrière plan sur toute page internet?
    Par simplyme dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 28/11/2006, 15h09
  4. Modifier la couleur d'arrière plan des dossiers
    Par FRED.G dans le forum Autres Logiciels
    Réponses: 5
    Dernier message: 26/04/2006, 13h09
  5. comment rendre invisible l'un des onglets d'un TPAGECONTROL
    Par richard038 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 08/09/2005, 16h46

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