我在界面上放了一个TListView, 将其Checkboxes属性设置为true.还有一个按钮现在想实现用户按下按钮后,TListView中每一条记录前的checkbox都打上勾,应该怎么写?还有我如何判断哪些记录前的checkbox是打上勾的?谢谢!

解决方案 »

  1.   

    var
       shop: TCheckListBox; // 假设shop 为TCheckListBox
      for i :=0 to shop.Count-1 do
        shop.Checked[i] :=true;  //( or false;)
      

  2.   

    全部勾中:
    var i:integer;
    begin
      for i:=0 to ListView.Items.Count-1 do
      ListView.Items[i].Checked:=True;
    end;判断是否勾中也是那个Checked属性if ListViewItems[i].Checked then ....
      

  3.   

    那怎么判断用户点击了某个checkbox呢?对应于TListView的那个事件阿?
      

  4.   

    OnChanging或者OnChange事件例如:
    procedure TForm1.ListView1Changing(Sender: TObject; Item: TListItem;
      Change: TItemChange; var AllowChange: Boolean);
    begin
      ShowMessage(Item.Caption);
    end;
      

  5.   

    liangqingzhi(老之) :上面的代码能详细点吗?怎么判断checkbox被点击了?非常感谢!
      

  6.   

    andyzhou1101(不会再为谁付出真心) :TListView没有onCheckStateChange这个事件啊!
      

  7.   

    上面的代码能详细点吗?怎么判断checkbox被点击了?
    ---------------
    还不明白?CheckBox被点击,就会触发OnChanging和OnChange事件,被点的就是Item的CheckBoxprocedure TForm1.ListView1Changing(Sender: TObject; Item: TListItem;
      Change: TItemChange; var AllowChange: Boolean);
    begin
      if Item.Checked then ShowMessage('Checked')
      else ShowMessage('UnChecked');
    end;
      

  8.   

    andyzhou1101(不会再为谁付出真心) :TListView没有onCheckStateChange这个事件啊!---------------------------------------------
    错了,那个是三方控件里的
    :)
    呵呵在onchange里加if item.Checked then  showmessage('已选中');