2016-04-11 14 views
1

i bir düğmeye bastığınızda yüzden gereken ilk şey ben edebilmek için prosedür set aşağıdaki kodla sonraBelirli bir düğümü ilk dizine nasıl taşıyabilirim?

function Tform1.lookingTreeView(name: String): PVirtualNode; 
var 
    Node: PVirtualNode; 
    Data: PUserData; 
begin 
    Result := nil; 
    Node := Vts1.GetFirst; 
    while ((Node <> nil) and (Result = nil)) do 
    begin 
    Data := Vts1.GetNodeData(Node); 
    if (Tuserdataclass(Data.FObject).userUid = name) then 
     Result := Node; 
    Node := Vts1.GetNext(Node); 
    end; 
end; 

tarafından düğüm aramaktır TVirtualStringTree üstüne bir düğüm taşımak için çalışıyorum ,

procedure Tform1.checkmove; 
var 
    Node: PVirtualNode; 
    Data: PUserData; 
begin 

    Node := lookingTreeView(LineToid); 

    if not Assigned(Node) then 
    Exit; 
    if (Node <> nil) then 
    begin 
    Data := vts1.GetNodeData(Node); 
    if Tdataclass(Data.FObject).name = 'Martin' then 
    begin 

     // start move but dont know what to do to bring this node to first index 

    end; 
    end; 
end; 
+0

Kodunuzu biraz daha iyi biçimlendirmek isteyebilirsiniz, böylece insanlar daha iyi okuyabilir. –

+0

@RudyVelthuis kod biçimlendirilmiş – MartinLoanel

+0

Çok daha iyi, teşekkürler. –

cevap

4

As bir coment sözü edilen düğüm örneğin için eşitse "Martin" kontrol kullanmak MoveTo:

Vts1.MoveTo(Node, Vts1.GetFirst, amInsertBefore, False); 
İlgili konular