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

Delphi Discussion :

Mettre un item de treeview en Gras et rouge


Sujet :

Delphi

  1. #1
    Membre extrêmement actif Avatar de Cazaux-Moutou-Philippe
    Inscrit en
    Mai 2005
    Messages
    674
    Détails du profil
    Informations personnelles :
    Âge : 74

    Informations forums :
    Inscription : Mai 2005
    Messages : 674
    Points : 171
    Points
    171
    Par défaut Mettre un item de treeview en Gras et rouge
    Bonjour

    je cree un item comme ceci
    Mais je voudrais que cet item soit en gras et en rouge

    comment faire ?

    merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var
      indiConjoint: TTreeNode;
    begin
      indiParent := tvActe.Items.AddChildObject(nil, 'Acte(s) déja trouvé(s)', nil);
      indiParent.ImageIndex := 18;
      indiParent.SelectedIndex := 18;
    Philippe Cazaux-Moutou
    C#
    Delphi
    Windev

    Guadeloupe

    www.ancestrologie.net/fr

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    j'avais essayé lors de la programmation du code que je t'ai envoyé dans la discussion précédente mais sans succès [2000]

    toutefois depuis j'ai trouvé un lien in english et C++ http://dn.codegear.com/br/article/20486

    qui peut être fera ton bonheur
    je n'ai pas essayé
    mais la méthode me semble la bonne
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre extrêmement actif Avatar de Cazaux-Moutou-Philippe
    Inscrit en
    Mai 2005
    Messages
    674
    Détails du profil
    Informations personnelles :
    Âge : 74

    Informations forums :
    Inscription : Mai 2005
    Messages : 674
    Points : 171
    Points
    171
    Par défaut
    Merci

    mais c est pas gagné c est du c++
    Philippe Cazaux-Moutou
    C#
    Delphi
    Windev

    Guadeloupe

    www.ancestrologie.net/fr

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 28
    Points : 33
    Points
    33
    Par défaut
    Tu devrais y arriver par l'évènement : CustomDraw

    Cela pourrait ressembler à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    procedure TForm1.TvActCustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
    begin
      if node.imageIndex= 18 then // Pour retrouver ton nouveau noeud
        begin
          JvTree.Canvas.Font.Color := clRed;
          JvTree.Canvas.Font.Style := [fsBold];
        end;
    end;
    Dede

  5. #5
    Membre extrêmement actif Avatar de Cazaux-Moutou-Philippe
    Inscrit en
    Mai 2005
    Messages
    674
    Détails du profil
    Informations personnelles :
    Âge : 74

    Informations forums :
    Inscription : Mai 2005
    Messages : 674
    Points : 171
    Points
    171
    Par défaut
    Merci

    mais ca marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TFActesListe.tvActeCustomDrawItem(Sender: TCustomTreeView;
      Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
    begin
      if node.imageIndex = 18 then // Pour retrouver ton nouveau noeud
        begin
           tvActe.Canvas.Font.Color := clRed;
           tvActe.Canvas.Font.Style := [fsBold];
        end;
    end;
    mais ca ca me met bien en gras mais comment mettre en rouge

    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
    procedure TFActesListe.tvActeCustomDrawItem(Sender: TCustomTreeView;
      Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
    var
      TVItem: TTVItem;
    begin
      if node.imageIndex = 18 then // Pour retrouver ton nouveau noeud
        begin
           if not Assigned(Node) then Exit;
     
          with TVItem do
            begin
              mask := TVIF_STATE or TVIF_HANDLE;
              hItem := Node.ItemId;
              stateMask := TVIS_BOLD;
              state := TVIS_BOLD;
     
              TreeView_SetItem(Node.Handle, TVItem);
            end;
        end;
    end;
    Philippe Cazaux-Moutou
    C#
    Delphi
    Windev

    Guadeloupe

    www.ancestrologie.net/fr

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    je cherchais sans succes un @*!# customdraw qui n'existait pas dans [D3]

    bon passons , dans ton code je n'ai pas vu de changement de couleur, uniquement de la fonte ?
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #7
    Membre extrêmement actif Avatar de Cazaux-Moutou-Philippe
    Inscrit en
    Mai 2005
    Messages
    674
    Détails du profil
    Informations personnelles :
    Âge : 74

    Informations forums :
    Inscription : Mai 2005
    Messages : 674
    Points : 171
    Points
    171
    Par défaut
    Pour la couleur, justement, je n y arrives pas
    Philippe Cazaux-Moutou
    C#
    Delphi
    Windev

    Guadeloupe

    www.ancestrologie.net/fr

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    on peut voir la structure de TVItem
    et la fonction Treeview_SetItem
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  9. #9
    Membre extrêmement actif Avatar de Cazaux-Moutou-Philippe
    Inscrit en
    Mai 2005
    Messages
    674
    Détails du profil
    Informations personnelles :
    Âge : 74

    Informations forums :
    Inscription : Mai 2005
    Messages : 674
    Points : 171
    Points
    171
    Par défaut
    Je penses que c est interne

    tout mon code est la
    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
     
    procedure TFActesListe.tvActeCustomDrawItem(Sender: TCustomTreeView;
      Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
    var
      TVItem: TTVItem;
    begin
      if node.imageIndex = 18 then // Pour retrouver ton nouveau noeud
        begin
          // tvActe.Canvas.Font.Color := clRed;
          // tvActe.Canvas.Font.Style := [fsBold];
     
          if not Assigned(Node) then Exit;
     
          with TVItem do
            begin
              mask := TVIF_STATE or TVIF_HANDLE;
              hItem := Node.ItemId;
              stateMask := TVIS_BOLD;
              state := TVIS_BOLD;
     
              TreeView_SetItem(Node.Handle, TVItem);
            end;
        end;
    end;
    Philippe Cazaux-Moutou
    C#
    Delphi
    Windev

    Guadeloupe

    www.ancestrologie.net/fr

  10. #10
    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
    Une piste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    procedure TFActesListe.tvActeCustomDrawItem(Sender: TCustomTreeView;
      Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
    begin
      if Node.ImageIndex = 18 then // Pour retrouver ton nouveau noeud
      begin
        with Sender.Canvas.Font do
        begin
          Color := clRed;
          Style := [fsBold];
        end;
        DefaultDraw := false;
      end; 
    end;
    Code non testé.
    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

  11. #11
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 418
    Points : 5 816
    Points
    5 816
    Par défaut
    salut

    essai plutot l'evenement "OnAdvancedCustomDrawItem"

    @+ Phil

    PS : code teste ... pour moi cela fonctionne

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    var
      Rect : Trect;
      Tex_Top : integer;
    begin
      inherited;
      with TTreeView(Sender) do
      begin
        if Node.Selected then
        begin
        // Selected Node
          Canvas.Brush.Color:= clPurple;
          Canvas.Font.Style:= [fsBold];
     
          if (Node.ImageIndex = 3) or (Node.ImageIndex = 5) then
          begin
              Canvas.Font.Size:= 11;
              Canvas.Font.Color:= clBlack;
          end
          else if Node.HasChildren and (Node.AbsoluteIndex > 0) then
          begin
              Canvas.Font.Size:= 11;
              Canvas.Font.Color:= clTeal;
          end
          else if Node.AbsoluteIndex = 0 then
          begin
              Canvas.Font.Size:= 12;
              Canvas.Font.Color:= clBlack;
          end
          else
          begin
              Canvas.Font.Size:= 11;
              Canvas.Font.Color:= clRed;
          end;
     
        end
        else
        begin
     
          Canvas.Brush.Color:= clWhite;
     
          if (Node.ImageIndex = 3) or (Node.ImageIndex = 5) then
          begin
              Canvas.Font.Size:= 11;
              Canvas.Font.Color:= clBlack;
              Canvas.Font.Style:= [];
          end
          else if Node.HasChildren and (Node.AbsoluteIndex > 0) then
          begin
              Canvas.Font.Size:= 11;
              Canvas.Font.Color:= clTeal;
              Canvas.Font.Style:= [];
          end
          else if Node.AbsoluteIndex = 0 then
          begin
              Canvas.Font.Size:= 12;
              Canvas.Font.Style:= [fsBold];
              Canvas.Font.Color:= clBlack;
          end
          else
          begin
              Canvas.Font.Size:= 11;
              Canvas.Font.Color:= clRed;
              Canvas.Font.Style:= [];
          end;
     
        end;
     
        if (cdsHot in State) then
        begin
          Canvas.Font.Style:= [fsBold,fsUnderline];
          Canvas.Font.Color:= clGreen;
        end;
     
     
        Rect:= Node.DisplayRect(True);
        Canvas.FillRect(Rect);
     
        Tex_Top:= Rect.Top + (Rect.Bottom - Rect.Top - Canvas.TextHeight(Node.Text)) div 2;
        Canvas.TextOut(Rect.Left + 2, Tex_Top, Node.Text);
     
      end;
    end;
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  12. #12
    Membre extrêmement actif Avatar de Cazaux-Moutou-Philippe
    Inscrit en
    Mai 2005
    Messages
    674
    Détails du profil
    Informations personnelles :
    Âge : 74

    Informations forums :
    Inscription : Mai 2005
    Messages : 674
    Points : 171
    Points
    171
    Par défaut
    Merci Anapurna

    le 1 code fonctionne en commentant DefaultDraw

    Merci a tous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      if Node.ImageIndex = 18 then // Pour retrouver ton nouveau noeud
      begin
        with Sender.Canvas.Font do
        begin
          Color := clRed;
          Style := [fsBold];
        end;
       // DefaultDraw := false;
      end;
    Philippe Cazaux-Moutou
    C#
    Delphi
    Windev

    Guadeloupe

    www.ancestrologie.net/fr

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 28
    Points : 33
    Points
    33
    Par défaut
    Surprenant, le code que je t'ai donné fonctionne puisque je l'utilise (aux nom de variable près) ?!?

    J'utilise un JvTreeview en Delphi 7

    Peut-être du côte de Parent.Font pour le Treeview ?
    Dede

  14. #14
    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
    Citation Envoyé par Cazaux-Moutou-Philippe
    Merci Anapurna

    le 1 code fonctionne en commentant DefaultDraw

    Merci a tous
    Ah Je pensais que tu avais déjà essayé ça...
    Le DefaultDraw que j'ai ajouté était juste une piste à suivre.

    Si ton problème est résolu, merci de cliquer sur
    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

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

Discussions similaires

  1. Mettre un item d'une listbox en gras
    Par Jean-Marc68 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 18/04/2008, 14h30
  2. mettre un ou plusieurs mot en gras et selectionnez une partie
    Par Iria77 dans le forum Général Python
    Réponses: 5
    Dernier message: 19/07/2007, 09h34
  3. Comment valider un items de Treeview par clic droit?
    Par Mickey.jet dans le forum Delphi
    Réponses: 8
    Dernier message: 10/05/2007, 17h23
  4. Mettre un item d'un listview en gras
    Par horneth dans le forum VB.NET
    Réponses: 2
    Dernier message: 12/02/2007, 12h16
  5. changer le hint d'un item de treeview
    Par adrienj dans le forum Delphi
    Réponses: 2
    Dernier message: 19/09/2006, 20h43

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