如何拖拽一个TreeView的节点Text到Memo中?

解决方案 »

  1.   

    procedure TForm1.TreeView1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
    self.Memo1.Lines.Clear;
    self.Memo1.Lines.Add(self.TreeView1.Selected.Text);
    end;
      

  2.   

    object TreeView1: TTreeView
      DragMode = dmAutomatic
    endprocedure TForm1.Memo1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    begin
      Accept := False;
      if not (Source is TTreeView) then Exit;
      TMemo(Sender).SetFocus;
      TMemo(Sender).SelStart :=
        TMemo(Sender).Perform(EM_CHARFROMPOS, 0, MAKELPARAM(X, Y));
      Accept := True;
    end;procedure TForm1.Memo1DragDrop(Sender, Source: TObject; X, Y: Integer);
    begin
      if not (Source is TTreeView) then Exit;
      if not Assigned(TTreeView(Source).Selected) then Exit;
      TMemo(Sender).SelText := TTreeView(Source).Selected.Text;
    end;
      

  3.   

    procedure TForm1.Memo1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    begin
      Accept := False;
      if (X < 0) or (Y < 0) then Exit; //补充一条,否则有范围错误~~