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

Lazarus Pascal Discussion :

Composant TreeView et couleur des noeuds


Sujet :

Lazarus Pascal

  1. #1
    Membre prolifique Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 729
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 729
    Par défaut Composant TreeView et couleur des noeuds
    Bonjour à toutes et tous,

    Est-ce que quelqu'un a déjà utilisé un TreeView en modifiant la couleur du texte d'un noeud en fonction d'un critère particulier ?

    Je voudrais pouvoir modifier les couleurs du texte des noeuds, mais les TTreeNode n'ont pas de composants Font, et je ne vois pas comment dans le TTreeview réaliser cela.

    Si quelqu'un a une idée, ou s'il existe un composant dérivé qui permet cela, merci d'avance pour votre aide.

    JS

  2. #2
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 210
    Par défaut
    Hello,
    avec l'événement OnCustomDrawItem, tu dois pouvoir y arriver :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.tv_eg1CustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode;  State: TCustomDrawState; var DefaultDraw: Boolean);
    begin
     If Node.Text = 'Root' then   Sender.Canvas.Font.Color := clBlue;
     If Node.Text = 'Node1' then   Sender.Canvas.Font.Color := clRed;
     If Node.Text = 'Node2' then   Sender.Canvas.Font.Color := clGreen;
     If Node.Text = 'Node3' then   Sender.Canvas.Font.Color := clLime;
    end;
    Nom : LazarusTreeView.png
Affichages : 694
Taille : 16,3 Ko


    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko :zen:

  3. #3
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 115
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 115
    Par défaut [Treeview] Problème pour faire fonctionner un bout de code du forum
    Citation Envoyé par jurassic pork Voir le message
    Hello,
    avec l'événement OnCustomDrawItem, tu dois pouvoir y arriver :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.tv_eg1CustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode;  State: TCustomDrawState; var DefaultDraw: Boolean);
    begin
     If Node.Text = 'Root'  then   Sender.Canvas.Font.Color := clBlue;
     If Node.Text = 'Node1' then   Sender.Canvas.Font.Color := clRed;
     If Node.Text = 'Node2' then   Sender.Canvas.Font.Color := clGreen;
     If Node.Text = 'Node3' then   Sender.Canvas.Font.Color := clLime;
    end;
    Bonjour,

    j'aimerais bien savoir ce qu'il manque au petit bout de code posté par jurassic pork pour avoir un fonctionnement correct de ces 4 lignes chez moi (Linux Debian 12, Lazarus 3.8 et un code venant d'un cador du forum [https://forum.lazarus.freepascal.org...html#msg398314]) auquel je n'ai rien changé sauf l'ajout de la procédure CustomDrawItem et ça ne fonctionne pas ! Les textes restent en noir, point final.

    Je savais que le Treeview c'était compliqué :
    But be warned: Custom drawing of TTreeView is very complex. It occurs in several stages (see the "Stage" parameter) and you must fully understand this drawing cycle otherwise this exercise will be quite frustrating...
    https://forum.lazarus.freepascal.org...html#msg398341
    https://forum.lazarus.freepascal.org...0;attach=42158
    (j'ai mis deux liens, je ne sais plus lequel est le bon... Faut dire aussi qu'il m'apparait ce matin un problème avec dvlp, regardez la copie d'écran de ça en live :
    Nom : plus_de_boutons.png
Affichages : 230
Taille : 25,4 Ko
    Qui a cassé quoi ? )
    , mais pas à ce point-là...

    Merci pour le coup de main,
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  4. #4
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 210
    Par défaut
    Hello Jipété,
    il faut que la propriété tvoThemedDraw dans Options du TreeView soit à False.

    Ami calmant, J.P (sans T)
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko :zen:

  5. #5
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 115
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 115
    Par défaut
    Ah !

    ÉNORME MERCI à toi !
    Nom : 4nodes_colorés.png
Affichages : 206
Taille : 6,8 Ko
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  6. #6
    Membre chevronné Avatar de der§en
    Homme Profil pro
    Bretagne
    Inscrit en
    Septembre 2005
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bretagne
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 050
    Par défaut
    Pour répondre à un besoin similaire, la coloration des items, je le faisait en consultant le level des ttreenode:

    https://docwiki.embarcadero.com/Libr...TreeNode.Level

  7. #7
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 115
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 115
    Par défaut
    Ah oui, ça peut être sympa : me suis appuyé sur l'éditeur de nodes pour en ajouter 5 tout en bas et j'ai joué avec les couleurs, ce qui donne ça :
    Nom : test_levels.png
Affichages : 421
Taille : 7,1 Ko

    et pendant que j'y étais, cette copie d'écran des couleurs, pour éviter de chercher (depuis le temps que je devais la faire...) :
    Nom : 22couleurs.png
Affichages : 129
Taille : 14,2 Ko
    Allez hop !, cadeau,

    PS : l'éditeur du forum a retrouvé ses boutons.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  8. #8
    Membre prolifique Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 729
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 729
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    Hello,
    avec l'événement OnCustomDrawItem, tu dois pouvoir y arriver :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.tv_eg1CustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode;  State: TCustomDrawState; var DefaultDraw: Boolean);
    begin
     If Node.Text = 'Root' then   Sender.Canvas.Font.Color := clBlue;
     If Node.Text = 'Node1' then   Sender.Canvas.Font.Color := clRed;
     If Node.Text = 'Node2' then   Sender.Canvas.Font.Color := clGreen;
     If Node.Text = 'Node3' then   Sender.Canvas.Font.Color := clLime;
    end;
    Nom : LazarusTreeView.png
Affichages : 694
Taille : 16,3 Ko


    Ami calmant, J.P
    Bonjour JP,
    de retour d'un Loooong WE, je vois cette magnifique réponse. Merci à toi.
    J'avais utilisé cet évènement, avec succès, à priori, mais si on demande à mettre en évidence la sélection, (propriété HotTrack) on perd le formatage et je n'ai pas trouvé comment faire pour modifier l'aspect lors de la sélection.
    Il y a bien la propriété HotTrackColor, mais pas de "HotTrackFont" !
    Du coup, j'ai ôté la mise en évidence de la sélection.

    JS

  9. #9
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 115
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 115
    Par défaut
    Citation Envoyé par Jon Shannow Voir le message
    ... mais si on demande à mettre en évidence la sélection, (propriété HotTrack) on perd le formatage et je n'ai pas trouvé comment faire pour modifier l'aspect lors de la sélection.
    Curieux... J'ai testé avec HotTrack à True et HotTrackColor avec clTeal et ma foi, ça fonctionne : en bougeant la souris sur un item, le pointeur devient "le doigt qui clique" et la couleur du texte change.

    Qu'est-ce que tu appelles "le formatage" ?
    As-tu bien pensé à décocher tvoThemedDraw ?
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  10. #10
    Membre prolifique Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 729
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 729
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Curieux... J'ai testé avec HotTrack à True et HotTrackColor avec clTeal et ma foi, ça fonctionne : en bougeant la souris sur un item, le pointeur devient "le doigt qui clique" et la couleur du texte change.

    Qu'est-ce que tu appelles "le formatage" ?
    As-tu bien pensé à décocher tvoThemedDraw ?
    Bonjour Jipété,

    Quand je parle du formatage, c'est, par exemple, la mise en italique ou en gras.
    Ensuite, il prend la couleur du HotTrackColor, mais on ne peut pas avoir une couleur différente en fonction d'un critère particulier du nœud.

    JS

  11. #11
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 115
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 115
    Par défaut
    Citation Envoyé par Jon Shannow Voir le message
    ... on ne peut pas avoir une couleur différente en fonction d'un critère particulier du nœud.
    Ça doit dépendre du critère, puisque par exemple, selon le text ou le level, tu peux avoir une couleur ou une autre, on l'a bien vu.
    Toi, tu voudrais utiliser un autre critère ? Lequel ?
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  12. #12
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 210
    Par défaut
    Hello,
    quand on met hottrack à true, les événements customdrawitem se déclenchent quand on passe sur les noeuds.
    Par exemple pour afficher le Node Node2 en bleu Aqua quand on passe dessus on peut utiliser le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TForm1.tv_eg1CustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode;  State: TCustomDrawState; var DefaultDraw: Boolean);
    var
      R: TRect;
    begin
       R := Node.DisplayRect(true);
      if (PtInRect(R, sender.ScreenToClient(Mouse.CursorPos))) And
         (Node.Text = 'Node2') then
      begin
           Sender.Canvas.Font.Color := clAqua;
      end;
    end;
    On regarde si il y a un Node sous le curseur et si c'est le Node Node2 on colore en Aqua
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko :zen:

  13. #13
    Membre prolifique Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 729
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 729
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Ça doit dépendre du critère, puisque par exemple, selon le text ou le level, tu peux avoir une couleur ou une autre, on l'a bien vu.
    Toi, tu voudrais utiliser un autre critère ? Lequel ?
    En fait, ça, j'ai réussi. C'est avec le HotTrack, qu'il me reste un souci.
    Pour les critères, en fait j'associe les nœuds avec un objet via la propriété Data du TTreeNode, ça marche bien.

  14. #14
    Membre prolifique Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 729
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 729
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    Hello,
    quand on met hottrack à true, les événements customdrawitem se déclenchent quand on passe sur les noeuds.
    Par exemple pour afficher le Node Node2 en bleu Aqua quand on passe dessus on peut utiliser le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TForm1.tv_eg1CustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode;  State: TCustomDrawState; var DefaultDraw: Boolean);
    var
      R: TRect;
    begin
       R := Node.DisplayRect(true);
      if (PtInRect(R, sender.ScreenToClient(Mouse.CursorPos))) And
         (Node.Text = 'Node2') then
      begin
           Sender.Canvas.Font.Color := clAqua;
      end;
    end;
    On regarde si il y a un Node sous le curseur et si c'est le Node Node2 on colore en Aqua
    Ami calmant, J.P

    Salut JP,

    Tu es sûr ? Car, pour moi, le passage du curseur ou la sélection d'un nœud ne provoque pas le OnCustomDraw. Du coup, je ne peux pas modifier le comportement du Treeview.

    JS

  15. #15
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 210
    Par défaut
    sous quel O.S et quelle version de Lazarus ?
    sous Windows 11 Lazarus 3.6 :

    Nom : TreeViewColor.gif
Affichages : 78
Taille : 76,5 Ko
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko :zen:

  16. #16
    Membre prolifique Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 729
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 729
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    sous quel O.S et quelle version de Lazarus ?
    sous Windows 11 Lazarus 3.6 :
    Sous Linux Mint, dernière version de Lazarus.
    Je re-revérifie que j'aurais pas fait une co****ie ce soir, et je te redis (là, j'ai pas accès à mon PC)

    JS

  17. #17
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 210
    Par défaut
    Citation Envoyé par Jon Shannow Voir le message
    Sous Linux Mint, dernière version de Lazarus.
    Je re-revérifie que j'aurais pas fait une co****ie ce soir, et je te redis (là, j'ai pas accès à mon PC)
    Ben moi , ça fonctionne sous Lubuntu 22.04 Lazarus 3.2 :
    Nom : TreeViewColorLubuntu.gif
Affichages : 70
Taille : 26,1 Ko

    Ne pas oublier de mettre types dans les uses
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko :zen:

  18. #18
    Membre prolifique Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 729
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 729
    Par défaut
    Bonjour à toutes et tous,

    Je reviens vers vous pour ce problème de TreeView.

    Alors, je confirme que pour la couleur du texte, ça fonctionne, mais pas pour le style du 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
    34
    35
    36
    37
    38
    39
    40
    41
     
      Node : TTreeNode; State : TCustomDrawState; var DefaultDraw : Boolean);
    Var
      bo_Hot    : Boolean;
      vDataNode : TNodeCompte;  //Information sur le compte
      R         : TRect;
     
    begin
      R := Node.DisplayRect(True);
      bo_Hot := (PtInRect(R, Sender.ScreenToClient(Mouse.CursorPos)));
     
        If Assigned(Node.Data) Then
        Begin
          vDataNode := TNodeCompte(Node.Data);
          If vDataNode.CptStatut = ecptFerme Then //Teste si le compte est fermé
            If bo_Hot Then
            Begin
              sender.Canvas.Font.Style := [fsbold, fsItalic]; //Là, ça met la police en souligné
              sender.Canvas.Font.Color := clRed; //Mais la couleur est bonne
            end
            Else Begin
              sender.Canvas.Font.Style := [fsItalic]; //Là c'est bon
              sender.Canvas.Font.Color := clMaroon; //Là aussi
            end
          Else
            If bo_Hot Then
            Begin
              sender.Canvas.Font.Style := [fsBold]; //Se met en souligné
              sender.Canvas.Font.Color := clBlue; //La couleur est OK
            end
            Else Begin
              sender.Canvas.Font.Style := [];
              sender.Canvas.Font.Color := clAqua; //Là aussi, c'est bon
            End;
        end
        Else
          If cdsHot in State Then
            sender.Canvas.Font.Style := [fsBold] //Pas de gras, juste du souligné
          Else
            sender.Canvas.Font.Style := [];
    End;
    Les couleurs sont bonnes, et les comptes "fermés" sont bien en italique, sauf lors du passage de la souris, là, s'ils changent bien de couleur, ils sont souligné et abandonnent l'italique !

    JS

  19. #19
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 210
    Par défaut
    Citation Envoyé par Jon Shannow Voir le message
    Bonjour à toutes et tous,
    Alors, je confirme que pour la couleur du texte, ça fonctionne, mais pas pour le style du texte.

    Les couleurs sont bonnes, et les comptes "fermés" sont bien en italique, sauf lors du passage de la souris, là, s'ils changent bien de couleur, ils sont souligné et abandonnent l'italique !
    Hello,
    cela me paraît logique car avec le HotTrack on surligne le texte donc on force les attributs.

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko :zen:

  20. #20
    Membre prolifique Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 729
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 729
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    Hello,
    cela me paraît logique car avec le HotTrack on surligne le texte donc on force les attributs.

    Ami calmant, J.P
    C'est la conclusion à laquelle j'étais arrivé aussi. Tant pis, je vais faire sans.

    JS

Discussions similaires

  1. Treeview et couleur des noeuds
    Par VILPELLET dans le forum ASP.NET
    Réponses: 2
    Dernier message: 29/09/2012, 23h22
  2. Changer la couleur des noeuds d'un JvCheckTreeView
    Par codial dans le forum Composants VCL
    Réponses: 0
    Dernier message: 12/03/2008, 14h28
  3. peupler un treeview avec gestion des noeuds
    Par Alabama-song dans le forum ASP.NET
    Réponses: 3
    Dernier message: 25/01/2008, 20h35
  4. [c# 2.0] TreeView et sélection des noeuds
    Par OtI$ dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/04/2007, 11h11
  5. Couleur des noeuds ds 1 TTreeView
    Par vincent DD dans le forum Composants VCL
    Réponses: 3
    Dernier message: 18/09/2002, 13h54

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