Q&A

  • treeview에서 listview로 드래그앤드롭하기
천재들
   --아인슈타인
   --비트겐슈타인
   --홍길동

위에서 treeview의 '천재들'이란 노드를 listview에 드래그앤드롭하면
하위노드인 '아인슈타인'과 '비트겐슈타인' 그리고 '홍길동' 모두가
listview에 들어갈 수 있도록 하고 싶은데 아래처럼 코딩했더니 선택된
노드 하나만 달랑 들어가는군요. 어떻게 해야 할까요?
고수님들의 애정어린 설명 부탁드립니다.

procedure TfrmChat.ListView1DragDrop(Sender, Source: TObject; X,
  Y: Integer);
var
i: Integer;
begin
for i := 0 to Treeview1.Items.Count-1 do
  if Treeview1.Items[i].Selected then
   with Listview1.Items.Add do
   begin
    Caption  := Treeview1.Items[i].Text;
    SubItems.add(table1.fieldbyname('ip').asstring);
    SubItems.add(table1.fieldbyname('position').asstring);
   end;
end;
2  COMMENTS
  • Profile
    윤신호 2002.03.23 19:38
    아래와 같이 한번 해 보세요~~

    procedure TfrmChat.ListView1DragDrop(Sender, Source: TObject; X,
      Y: Integer);
    var
    i: Integer;
    UserList : TStringList;
    begin
    UserList:=Tstringlist.Create;
    UserList.clear;
    UserList.text:=UserLists(TreeView_group.Selected,'');
    for i := 0 to UserList.Count-1 do
      if Treeview1.Items[i].Selected then
       with Listview1.Items.Add do
       begin
        Caption  := UserList.Strings[i];
        SubItems.add(table1.fieldbyname('ip').asstring);  ->적당히 알아서..
        SubItems.add(table1.fieldbyname('position').asstring);  ->적당히 알아서..
       end;
    UserList.Free;
    end;

    Function TForm1.UserLists(Seltreelist :TTreeNode;ListStr:String):String;
    var i : integer;
        ListS : string;
    begin
       ListS:=ListStr;
       if Seltreelist.Count > 0 then
          begin
          for i:=0 to Seltreelist.Count-1 do
             begin
             if Seltreelist.Item[i].HasChildren then
                Lists:=UserLists(Seltreelist.Item[i],ListS)
             else
                ListS:=ListS+Seltreelist.Item[i].Text+#13+#10;
             end
          end
       else
          ListS:=TreeView1.Selected.Text;
       result:=ListS;

    end;



  • Profile
    윤형남 2002.03.23 22:14