設定ListView顯示CheckBox

2022-03-18 04:01:55 字數 1694 閱讀 5633

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

1.讓listview像dbgrid資料庫那樣顯示資料:將listview的viewstyle設定為vsreport。

2.向listview中新增資料:我的資料是從資料庫中查詢得到的,比如我用的是adoquery, 先定義變數:

varmyitem: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);

vari: 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,依此類推

listview分塊顯示

關鍵在於共同特徵的第乙個出現的物件的位置確定 邏輯 接收乙個物件的在物件群中的位置,得到所具有 特徵值在特徵群中的位置 塊號 找到具有 特徵值在特徵群中的位置 塊號 的第乙個物件的在物件群中的位置 判斷在物件群中的位置是否相同,相同則顯示,不相同則隱藏 具體實現 adapter實現sectionin...

ListView顯示不同布局

在使用不同布局的時候,getitemviewtype和getviewtype不能少,通常是不用這兩個函式的過載的 listview.setadapter new baseadapter override public int getitemviewtype int position if posit...

listView 動態設定高亮

有時候,我們需要動態讓 listview 中的item高亮。比如如下場景。左邊是乙個listview 這個listview 的item是檔案列表 右邊是乙個imageview顯示。如下圖所示 實現方法 listview 的 adapter 繼承自 baseadapter 如下 public clas...