
Delphi,需要动态统计Treeview子节点数目,并显示出来;如父节点为货物,子节点有图书、行李、水果三个,则在父节点货物旁显示(3),若子节点再增加食物一项,则数目自动更新为(4)。
-货物(3)
- 图书
- 行李
- 水果
-货物(4)
- 图书
- 行李
- 水果
- 食物

该回答引用自GPT-3.5,由博主GISer Liu编写:
根据您的描述,您需要在 Delphi 中实现动态统计 Treeview 子节点数目,并显示在父节点旁边。您可以按照以下步骤来实现:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls;
type
TForm1 = class(TForm)
TreeView1: TTreeView;
Button1: TButton;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure UpdateNodeText(Node: TTreeNode);
begin
Node.Text := Format('%s (%d)', [Node.Text, Node.Count]);
end;
procedure UpdateParentNode(Node: TTreeNode);
begin
if Assigned(Node.Parent) then
UpdateNodeText(Node.Parent);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
TreeView1.Items.Add(nil, '货物');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
TreeView1.Items.AddChild(TreeView1.Selected, '图书');
UpdateParentNode(TreeView1.Selected);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
TreeView1.Items.AddChild(TreeView1.Selected, '行李');
UpdateParentNode(TreeView1.Selected);
end;
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
if Assigned(Node) then
Caption := Node.Text;
end;
end.
在这个示例中,我们使用 TreeView1Change如果该回答解决了您的问题,请采纳!如果没有,请参考以下方案进行修订
