给treeview添加checkbox

来源:互联网 发布:群晖 路由器端口转发 编辑:程序博客网 时间:2024/05/21 12:47

--------------------------------------------------------------------------------

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, StdCtrls;

type

TForm1 =class(TForm)

   TreeView1: TTreeView;

   Button1: TButton;

  procedure FormCreate(Sender: TObject);

  procedure Button1Click(Sender: TObject);

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

uses CommCtrl;

//让 TreeView 带有复选框

procedure TForm1.FormCreate(Sender: TObject);

var

H: HWND;

begin

H := TreeView1.Handle;

SetWindowLong(H, GWL_STYLE, GetWindowLong(H, GWL_STYLE)or TVS_CHECKBOXES);

{下面的代码只是给 TreeView 添加内容}

with TreeView1do

begin

   Align := alLeft;

   Items.Add(nil,'AAA');

   Items.Add(nil,'BBB');

   Items.Add(nil,'CCC');

   Items.AddChild(Items[2],'111');

   Items.AddChild(Items[2],'222');

   Items.AddChild(Items[2],'333');

end;

end;

//列举带有复选框的项

procedure TForm1.Button1Click(Sender: TObject);

var

Node: TTreeNode;

TVI: TTVItem;

begin

for Nodein TreeView1.Itemsdo

begin

   TVI.mask := TVIF_STATE;

   TVI.hItem := Node.ItemId;

   TreeView_GetItem(TreeView1.Handle, TVI);

  if TVI.stateand$2000 =$2000then

     ShowMessage(Node.Text);

end;

end;

end.

原创粉丝点击