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 :

treeview, custom draw et editing


Sujet :

Delphi

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Février 2005
    Messages
    317
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 317
    Points : 183
    Points
    183
    Par défaut treeview, custom draw et editing
    Salut à tous, j'ai un bug sur mon treeview que je n'arrives pas à résoudre: mon treeview est en custom draw, et lorsque l'utilisateur édites le texte des node, il n'est pas effacé, c'est à dire que si le texte est plus cours, l'ancien texte est affiché jusqu'a ce qu'il valide. J'ai cherché a faire un repaint sur onKeyPress avec isediting, mais sans succès. Si quelqu'un avait une solution

  2. #2
    Membre éprouvé
    Avatar de octal
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 441
    Points : 957
    Points
    957
    Par défaut
    Bonjour,
    si tu postai le code de ton evenement onPaint ca serait plus simple pour nous. Cordialement
    http://www.pocketmt.com GLCD Font Creator home site.

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Février 2005
    Messages
    317
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 317
    Points : 183
    Points
    183
    Par défaut
    voili voulou:
    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
    procedure TfrmMain.treefieldsCustomDrawItem(Sender: TCustomTreeView;
      Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
    begin
    with sender do
    begin
      //if (node=sender.Selected) then
      if (cdsSelected in state) then
      begin
      canvas.brush.color:=CLNavy;
      canvas.Font.Color:=CLWhite;
      canvas.Font.style:=[fsbold];
     
      end
      else
      begin
      canvas.brush.color:=clwindow;
      canvas.Font.Color:=CLBlack;
      canvas.Font.style:=[];
     
      end;
     
      canvas.FillRect(node.DisplayRect(false));
      canvas.TextOut(node.DisplayRect(true).left,node.DisplayRect(true).top,node.Text);
    end;
    end;

  4. #4
    Membre éprouvé
    Avatar de octal
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 441
    Points : 957
    Points
    957
    Par défaut
    Bonjour,
    en fait ce qui se passe c'est que quand tu rentre en modification de ton noeud, c'est un éditeur qui est supperposé à ton noeud et qui te permet de modifier le text de celuici. Cet éditeur tente d'avoir la meme taille que ton texte, et quand tu valide le texte est copié de l'éditeur vers le noeud. Ceci explique pkoi le text du noeud s'affiche s'il est plus long que l"éditeur.
    Je ne pense pas qu'il est de solution facile à ce truc là sauf si tu mettais text du noeud à vide et si tu le restaurai si jamais l'utilisateur annulait la saisie.
    La seconde solution est de s'affranchir carrément du TreeView qui encapsule le TreeView de Microsoft (les common controles ) et de passer à un treeview digne de ce non comme VirtualTreeView qui offre toutes les possibilités et acrobaties évitant ce genre de désagréments.
    Bon courrage
    http://www.pocketmt.com GLCD Font Creator home site.

  5. #5
    Membre habitué

    Profil pro
    Inscrit en
    Février 2005
    Messages
    317
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 317
    Points : 183
    Points
    183
    Par défaut
    Le problème si j'utilise un virtual treeview est que je vais devoir remanier tout mon code, celui ci n'ayant pas les même propriétés que le treeview natif. Enfin je verrai. Merci quand même.
    Sinon, n'est-il pas possible de récuperer l'éditeur et de l'agrandir ?

Discussions similaires

  1. [SP-2010]custom new et edit form et xslt
    Par eldrad95 dans le forum Développement Sharepoint
    Réponses: 0
    Dernier message: 17/10/2011, 11h43
  2. Rebar Chevron + custom draw
    Par Kiristu dans le forum Windows
    Réponses: 0
    Dernier message: 10/12/2009, 00h30
  3. WPF Treeview et Customization
    Par EzecKiel dans le forum Windows Presentation Foundation
    Réponses: 8
    Dernier message: 27/05/2008, 16h38
  4. ListView et Custom Draw
    Par punx120 dans le forum Windows
    Réponses: 1
    Dernier message: 23/11/2006, 15h44
  5. TREEVIEW : Editer (changer le nom) d'un Noeud
    Par cyberlewis dans le forum Composants VCL
    Réponses: 2
    Dernier message: 07/07/2004, 15h00

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