⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 checktreeview.~pas

📁 自己封装的:日期控件(dataX)
💻 ~PAS
字号:
unit CheckTreeView;

interface

uses
  SysUtils, Classes, Controls, ComCtrls;
const
TVIS_CHECKED = $2000;//什么意思

type
  CheckTreeView = class(TTreeView)
  private
    { Private declarations }
  protected
      procedure CreateParams(var Params: TCreateParams); override;

  public
      function IsChecked(Node :TTreeNode) :Boolean;
      procedure SetChecked(Node :TTreeNode; Checked :Boolean);
  published
    { Published declarations }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [CheckTreeView]);
end;

{ CheckTreeView }

procedure CheckTreeView.CreateParams(var Params: TCreateParams);
begin
  inherited;
    Params.Style:=Params.Style or TVS_CHECKBOXES;
end;

function CheckTreeView.IsChecked(Node: TTreeNode): Boolean;
var
TvItem :TTVItem;
begin
  TvItem.Mask := TVIF_STATE;//什么意思
  TvItem.hItem := Node.ItemId;//什么意思
  TreeView_GetItem(Node.TreeView.Handle, TvItem);//什么意思
  Result := (TvItem.State and TVIS_CHECKED) = TVIS_CHECKED;//什么意思
end;

procedure CheckTreeView.SetChecked(Node: TTreeNode; Checked: Boolean);
var
TvItem :TTVItem;
begin
  FillChar(TvItem, SizeOf(TvItem), 0);
  with TvItem do
  begin
    hItem := Node.ItemId;
    Mask := TVIF_STATE;
    StateMask := TVIS_STATEIMAGEMASK;
    if Checked then
        TvItem.State :=TVIS_CHECKED
    else
        TvItem.State :=TVIS_CHECKED shr 1;
        TreeView_SetItem(Node.TreeView.Handle, TvItem);
  end;

end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -