Announcement

Collapse
No announcement yet.

VirtualTreeView nodes verschieben

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • VirtualTreeView nodes verschieben

    Hallo,

    hat jemand ne idee, wie man es am besten programmieren kann, dass der Anwender im VirtualTreeView nodes verschieben kann?

    Gruß

    markus
    Herzliche Grüße

    Markus Lemcke
    barrierefreies Webdesign

  • #2
    moin, markus

    virtualtreeview ? Hier mal meine Standard-Prozeduren für das ganz "normale" Delphi-TreeView - das Prinzip sollte damit erkennbar sein

    gruss
    bernhard

    procedure MoveNode_UP(Tree: TTreeView);
    var Node : TTreeNode;
    AttachMode : TNodeAttachMode;
    begin
    if (Tree.Selected = nil) then exit;
    if Tree.Selected.GetPrevSibling <> nil then
    begin
    AttachMode := naInsert;
    Node := Tree.Selected.getPrevSibling;

    if Node <> nil then Tree.Selected.MoveTo(Node,AttachMode);
    end;
    end;

    procedure MoveNode_DOWN(Tree: TTreeView);
    var Node : TTreeNode;
    AttachMode: TNodeAttachMode;
    begin
    if (Tree.Selected = nil) then exit;

    if (Tree.Selected.getNextSibling <> nil) then
    begin
    Node := Tree.Selected.getNextSibling;
    if (Node.Parent <> nil) and(Node = Tree.Selected.Parent.GetLastChild) then
    begin
    Node := Tree.Selected.Parent;
    AttachMode := naAddChild;
    end
    else
    begin
    Node := Node.getNextSibling;
    AttachMode := naInsert;
    end;
    if Node <> nil
    then Tree.Selected.MoveTo(Node,AttachMode)
    else Tree.Selected.MoveTo(nil,naAdd);
    end;
    end;

    procedure MoveNode_LEFT(Tree: TTreeView);
    var Node : TTreeNode;
    AttachMode: TNodeAttachMode;
    begin
    if Tree.Selected = nil then exit;

    Node := nil; AttachMode := naAdd;
    if Tree.Selected.Parent <> nil then
    begin
    Node := Tree.Selected.Parent.GetNextSibling;
    AttachMode := naInsert;
    if Node = nil then
    begin
    AttachMode := naInsert;
    Node := Tree.Selected.Parent;
    end;
    end;
    if Node <> nil then Tree.Selected.MoveTo(Node,AttachMode);
    end;

    procedure MoveNode_RIGHT(Tree: TTreeView);
    var Node : TTreeNode;
    AttachMode: TNodeAttachMode;
    begin
    if (Tree.Selected = nil) then exit;
    if Tree.Selected.GetPrevSibling <> nil then
    begin
    AttachMode := naAddChild;
    Node := Tree.Selected.getPrevSibling;
    if Node <> nil then Tree.Selected.MoveTo(Node,AttachMode);
    end;
    end

    Comment


    • #3
      vielen dank bernhard.
      werde es testen wenn ich dazu komme, bin gerade mit anderen sachen beschäftigt
      Herzliche Grüße

      Markus Lemcke
      barrierefreies Webdesign

      Comment


      • #4
        so, jetzt schaue ich mir mal deinen "roman" an

        gruß

        Marku
        Herzliche Grüße

        Markus Lemcke
        barrierefreies Webdesign

        Comment


        • #5
          Frage:
          wie wendet man das an?
          sprich durch welcher anwender-aktion wird was aufgerufen?

          Gruß

          Marku
          Herzliche Grüße

          Markus Lemcke
          barrierefreies Webdesign

          Comment


          • #6
            das ganze funzt mit dem TVirtualStringTree nicht
            Herzliche Grüße

            Markus Lemcke
            barrierefreies Webdesign

            Comment

            Working...
            X