設置ListView顯示CheckBox


最近在開發的時候用到ListView,簡單總結一下它的用法。

1.讓ListView像DBGrid數據庫那樣顯示數據:將ListView的ViewStyle設置為vsReport。

2.向ListView中添加數據:我的數據是從數據庫中查詢得到的,比如我用的是ADOQuery, 先定義變量:

var

   MyItem:TListItem

begin

ADOQuery1.First;
   while not ADOQuery1.Eof do
     begin
        MyItem:= self.ListView1.Items.Add;
         MyItem.Caption:= ADOQuery1.FieldByName('sfxm').AsString;      
          MyItem.SubItems.Add(ADOQuery1.FieldByName('qm').AsString);    
          MyItem.SubItems.Add(ADOQuery1.FieldByName('zm').AsString);    
         MyItem.SubItems.Add(ADOQuery1.FieldByName('sys').AsString);  
         MyItem.SubItems.Add(ADOQuery1.FieldByName('sfbz').AsString);  
         MyItem.SubItems.Add(ADOQuery1.FieldByName('ysje').AsString);

         MyItem.SubItems.Add(ADOQuery1.FieldByName('yf').AsString);  
         MyItem.SubItems.Add(ADOQuery1.FieldByName('cbr').AsString);  
          MyItem.SubItems.Add(ADOQuery1.FieldByName('ID').AsString);
      ADOQuery1.Next;
    end;

end;

這樣ListView就可以像DBGrid那樣顯示數據了。

3.設置ListView顯示CheckBox:只需在屬性中將CheckBoxes設置為True即可。

4.讓ListView顯示CheckBox后,或許需要得到ListView哪一行被(打勾)選中。這個我是用一個簡單的循環判斷。比如說我想實現這個功能:當ListView某行被選中后,TotalL(TLable控件)能夠動態的計算被選中行的第4列的值。我的代碼如下:

procedure TF_qfjf.ListView1Click(Sender: TObject);
var
    I: Integer;
    Total : Double;
begin
   Label17.Caption:= '';
Total:= 0;
    for I:= 0 to ListView1.Items.Count - 1 do
      if ListView1.Items.Item[I].Checked = True then
         Total:= Total + StrToFloat(ListView1.Items[I].SubItems.Strings[4]);
     TotalL.Caption:= FloatToStr(Total) + '    ' + 'RMB';
end;

注:ListView列的序號這樣計算,左側第一列是標簽,不做計算,第二列是0,第三列是1,依此類推


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM