默认属性没有的,
LIstview倒是有!

解决方案 »

  1.   

    呵呵,有一个很烂的方法,找两个图标来,一个是选中的,一个是没选中的,点击是切换就行了,然后判断图标就知道node是选中了还是没选中。
      

  2.   

    对就是上面说的方法,用两个图标,然后在object对象中标记一下,自已重画checkbox图标
      

  3.   

    (另一个笨方法)可以加上CheckBox
      

  4.   

    uses CommCtrl;SetWindowLong(TreeView1.Handle, GWL_STYLE, GetWindowLong(TreeView1.Handle, GWL_STYLE) or TVS_CHECKBOXES); //GetCheck
    var
      item: TTVITEM;
    begin
      item.mask := TVIF_HANDLE or TVIF_STATE;
      item.hItem := TreeView1.Selected.ItemId;
      item.stateMask := TVIS_STATEIMAGEMASK;
      SendMessage(TreeView1.Handle, TVM_GETITEM, 0, LPARAM(@item));
      if Boolean((item.state shr 12) - 1) then
        ShowMessage('Check');
    end;//SetCheck
    var
      item: TTVITEM;
    begin
      item.mask := TVIF_HANDLE or TVIF_STATE;
      item.hItem := TreeView1.Selected.ItemId;
      item.stateMask := TVIS_STATEIMAGEMASK;
      item.state := INDEXTOSTATEIMAGEMASK(1);//2 Check, 1 Uncheck
      SendMessage(TreeView1.Handle, TVM_SETITEM, 0, LPARAM(@item));
    end;