Results 1 to 8 of 8

Thread: treeview level 1 expanden

  1. #1
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747

    treeview level 1 expanden

    Ik heb een treeview aangemaakt, waardoor er tabellen met de columns als child instaan. Je kan een fullexpand doen, maar dan worden alle childnotes 'uitgepakt', wat weer te veel van het goede is. Hoe kan ik een expand doen van 1 level. De treeview heeft wel een method expand, maar deze staat private.
    Delphi is great. Lazarus is more powerfull

  2. #2
    Counting your refs Paul-Jan's Avatar
    Join Date
    Feb 2002
    Location
    Lage Zwaluwe
    Posts
    2,160
    1. Vraag de eerste node op m.b.v. tree.Items.GetFirstNode
    2. Loop door de nodes op het eerste niveau m.b.v. node.GetNextSibling
    3. Roep tegen iedere node node.Expanded := TRUE, of node.Expand( FALSE )

  3. #3
    Iets als dit:
    Code:
    var
      Node: TTreeNode;
    begin
      TreeView1.FullCollapse;
      Node := TreeView1.Items.GetFirstNode;
      while Assigned(Node) do
      begin
        if Node.Level <= 1 then
          Node.Expand(False);
        Node := Node.GetNext;
      end;
    end;

  4. #4
    Quote Originally Posted by jkuiper View Post
    De treeview heeft wel een method expand, maar deze staat private.
    Die staat protected en die kan je altijd aanroepen via de alom gekende "hack"
    Code:
    type
        THackTreeview = class(TTreeview);
    
     
    procedure TForm7.Button1Click(Sender: TObject);
    begin
      THackTreeview(TreeView1).Expand(<DeNode>);
    end;
    DeX 3 Delphi := The ease of VB with the power of C; Zoekt en gij zult vinden

  5. #5
    @Henkie:
    Als DeNode een TTreeNode uit TreeView1 is, waarom dan niet gewoon DeNode.Expand?

  6. #6
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Bedankt Jelmer en Henkie. Ik heb gekozen voor Jelmers code. Vond ik persoonlijker netter dan een nieuwe treeviewclass 'hacken'. Had alleen ruzie met de levels. De rootnote is level 0 en heb hem vandaaruit laten expanden. De treeview ziet er er nu beter uit.
    Delphi is great. Lazarus is more powerfull

  7. #7
    Counting your refs Paul-Jan's Avatar
    Join Date
    Feb 2002
    Location
    Lage Zwaluwe
    Posts
    2,160
    Die code van Jelmer is wél vrij duur als je veel nodes in je boom hebt, omdat hij alle nodes afloopt, niet alleen die op het gewenste niveau (getNext v.s. getNextSibling). Als dat geen probleem is, dan mooi.

  8. #8
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Het ging mij puur om de eerste node. Alleen bij de rootnode heb ik een expand laten uitvoeren. Ik heb dus de code iets aangepast, maar was wl blij met het duwtje in de rug van Jelmer.
    Delphi is great. Lazarus is more powerfull

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •