2008-10-05 6 views
1

Im utilisant ttreeview de delphi comme un menu 'options'. comment irais-je sur la sélection du prochain nœud à l'exécution comme un bouton précédent et suivant? J'ai essayé les méthodes getprev et getnext mais pas de chance.Utilisation de TTreeview en tant que menu

Répondre

5

Ici, vous avez le comportement 'Suivant'. Pour « Précédent » Je laisse comme exercice pour vous: :-)

procedure TForm8.btn1Click(Sender: TObject); 
var 
    crt: TTreeNode; 

begin 
    with tv1 do //this is our tree 
    begin 
    if Selected=nil then 
     crt:=Items[0] //the first one 
    else 
     crt:=Selected.GetNext; //for previous you'll have 'GetPrev' 

    if crt<>nil then //can be 'nil' if we reached to the end 
     Selected:=crt; 
    end; 
end; 

HTH

1

Peut-être il y a un peu d'espace au point d'arbre pour stocker le pointeur vous page correcte.

Mais - si vous avez un peu de temps - essayez d'explorer Virtual Treeview - c'est le meilleur composant treeview de Delphi.

0

ici est une autre façon de le faire:

type TfrmMain = class(TForm) 
... 
    public 
     DLLHandle : THandle; 
     function GetNodePath(node: TTreeNode; delimiter: string = '\') : String; 

... 

function TfrmMain.GetNodePath(node: TTreeNode; delimiter: string = '\') : String; 
begin 
    Result:=''; 
    while Assigned(node) do 
    begin 
     Result:=delimiter+node.Text+Result; 
     node:=node.Parent; 
    end; 
    if Result <> '' then 
     Delete(Result, 1, 1); 
end; 

... 

voici comment l'utiliser: sur votre clic de TreeView ou l'événement doubleClick faire

... 
var 
    path : String; 
begin 
    path:=GetNodePath(yourTreeView.Selected); 
    ShowMessage(path); 
... 

si vous avez un « article 1 » et un sous-élément appelé 'Item 1' et cliquez sur le point 2 que le message devrait être 'Item 1 \ Item 2'. En faisant cela, vous pouvez avoir un meilleur contrôle ...

espérons que cela vous donne une autre idée pour améliorer votre code

Questions connexes