标签: virtualtreeview

VirtualTreeview节点,将它们传递给另一种形式?

我的应用程序将通过虚拟节点循环并检查其数据.我使用另一个表单来执行此操作比包含VirtualStringTree的表单.(我得到了我的理由;))

我的问题是:我如何将这些节点+他们的数据传递给我的其他形式的函数,然后能够循环通过节点(我知道如何循环,我只需要以我的其他形式提供节点) ).

此外,请注意,一旦显示Processing表单,就会销毁包含VirtualStringTree的表单!

我怎么能这样做?我正在考虑创建一个动态的VirtualStringTree,并以某种方式将节点从一棵树传递到另一棵树,但我会先问这里是否有更好的解决方案.:)

谢谢,杰夫.

delphi virtualtreeview

1
推荐指数
1
解决办法
1532
查看次数

我应该如何更新 Virtual TreeView 中的节点?

我正在使用 Delphi XE3 和 Virtual TreeView。

我想用Virtual TreeView来实现一棵树,当点击“开始”按钮时,程序会递归搜索一个驱动器下的所有文件和文件夹,然后将它们一一添加到树中,就像Windows资源管理器一样。此外,应该有一个数字指示文件夹下的文件和子文件夹的数量,使用静态文本如下:

VirtualTreeView - 同一节点中不同颜色的文本

在我看来,我发现有时数字没有正确更新。

因此,每当文件/子文件夹的数量发生变化时,我认为可以通过以下方式刷新节点:

  1. 调用 tvItems.Change(PNode) 来更新节点。

  2. 调用 tvItems.InvalidateNode(PNode)。

  3. 调用 tvItems.RepaintNode(PNode)。

  4. 调用 tvItems.UpdateAction。

但是,1 是无法调用的受保护方法。2 和 3 都可以,但不知道哪个更适合更新。4 没有记录,不知道如何称呼它。

delphi virtualtreeview

1
推荐指数
1
解决办法
519
查看次数

在TVirtualStringTree中使用UserData参数的InsertNode

我需要向TVirtualStringTree插入一些新节点.我使用带有UserData参数的InsertNode方法.但树无法显示任何数据.如何获取GetText/FreeNode事件的用户数据?

  TMyData = record
    Name: string;
    size: Integer;
  end;
  PMyData = ^TMyData;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.FormCreate(Sender: TObject);
begin
  VirtualStringTree1.NodeDataSize := SizeOf(TMyData);
  Randomize;
end;

procedure TForm2.Button1Click(Sender: TObject);
var
  Data: PMyData;
  Node: PVirtualNode;
begin
  New(Data);
  Data.Name := DateTimeToStr(now);
  Data.size := Random(100);
  Node := VirtualStringTree1.InsertNode(nil, amInsertAfter, Data);
end;

procedure TForm2.VirtualStringTree1FreeNode(Sender: TBaseVirtualTree; Node:
    PVirtualNode);
var
  Data: PMyData;
begin
  Data := Sender.GetNodeData(Node);
  Data.Name := '';
end;

procedure TForm2.VirtualStringTree1GetText(Sender: TBaseVirtualTree; Node:
    PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText:
    WideString);
var
  Data: PMyData; …
Run Code Online (Sandbox Code Playgroud)

delphi virtualtreeview

0
推荐指数
1
解决办法
1637
查看次数

VirtualTreeView复制树与数据

如何将所有节点从一个VirtualTreeView复制到另一个?我试过使用CopyTo函数,但数据是空的,为什么?数据包含对记录的引用(像往常一样).

我也尝试使用OnNodeCopying@Cosmin Prund在他现在删除的答案中建议的这个事件,但它崩溃了:

procedure TDataBaseForm.SourceTreeViewNodeCopying(Sender: TBaseVirtualTree; 
  Node, Target: PVirtualNode; var Allowed: Boolean); 
var 
  SourceNodeData, DestNodeData: PNodeDataForCompare; 
begin 
  SourceNodeData := Sender.GetNodeData(Node); 
  DestNodeData := VirtualStringTree1.GetNodeData(Target); 
  if Assigned(SourceNodeData) then 
  begin 
    DestNodeData^ := SourceNodeData^; 
  end; 
  Allowed := true; 
end;
Run Code Online (Sandbox Code Playgroud)

delphi virtualtreeview

0
推荐指数
1
解决办法
2002
查看次数

Delphi XE2是否删除了IsWinNT功能?

移植到XE2,我有一个IsWinNT编译在7和Delphi 2009的行,从来没有给我们任何guff.

我不确定这样一个函数的目的是什么,但它是删除还是移动了?

什么是类似的功能?


我的坏,这是在Virtual Trees har.对不起伙计-1对我来说.房子里免费+ 1

windows delphi virtualtreeview delphi-xe2

-2
推荐指数
2
解决办法
470
查看次数

标签 统计

delphi ×5

virtualtreeview ×5

delphi-xe2 ×1

windows ×1