欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Delphi TreeView 节点上下移动

程序员文章站 2022-06-08 10:19:42
...

调用方法

procedure TfrmDataImport.B_ExcelDownClick(Sender: TObject);
begin
  UpDownTVItem(TV_Import, 2);
end;

procedure TfrmDataImport.B_ExcelUpClick(Sender: TObject);
begin
  UpDownTVItem(TV_Import, 1);
end;

  

 

上下移动函数

 

procedure TfrmDataImport.UpDownTVItem(aTV : TTreeView; UpDown : Integer);
var
  tmText : String;
  tmP    : Pointer;
  i, AddV : Integer;
  tmAsk : Boolean;
begin
  //  UpDown : 1 Up    Other Down
  if Assigned(aTV.Selected) then
  begin
    tmAsk := False;
    if UpDown = 1 then
    begin
      AddV := -1;
      if aTV.Selected.Index > 0 then
        tmAsk := True;
    end
    else
    begin
      AddV := 1;
      if aTV.Selected.Index < aTV.Items.Count - 1 then
        tmAsk := True;
    end;

    if tmAsk then
    begin
      i := aTV.Selected.Index;
      tmText := aTV.Selected.Text;
      tmP    := aTV.Selected.Data;
      aTV.Items.Item[i].Text := aTV.Items.Item[i + AddV].Text;
      aTV.Items.Item[i].Data := aTV.Items.Item[i + AddV].Data;
      aTV.Items.Item[i + AddV].Text := tmText;
      aTV.Items.Item[i + AddV].Data := tmP;
      aTV.Items.Item[i + AddV].Selected := True;
    end;
  end;
end;

 

posted on 2018-03-20 15:00 Yanyyx 阅读(...) 评论(...) 编辑 收藏