在listview中的某一列新增按鈕

2021-09-06 05:24:02 字數 2037 閱讀 8059

1.先定義結構:

type

pitemctrl = ^titemctrl;

titemctrl = record

viewcheckbox: tcheckbox;

markcheckbox: tcheckbox;

guidcheckbox: tcheckbox;

end; 

2.在listview的customdrawsubitem事件中寫如下**;

varrect: trect;

p: pitemctrl;

begin

if subitem in [1,2,3] then

begin

defaultdraw:= false; // 不顯示預設的文字.

rect:= item.displayrect(drbounds); // 獲取item顯示的區域.

if item.data = nil then // 如果為空則建立checkbox及button.

begin

new(p); // 建立乙個指標用於儲存checkbox及button.

p.viewcheckbox:= tcheckbox.create(listview1);

p.viewcheckbox.parent:= listview1;

p.viewcheckbox.caption:= '';

p.viewcheckbox.width:= 20;

p.viewcheckbox.height:= 20;

p.viewcheckbox.left:= rect.right - listview1.columns[2].width

- listview1.columns[3].width

- ((listview1.columns[1].width + p.viewcheckbox.width) div 2);

p.viewcheckbox.top:= rect.top;

p.viewcheckbox.visible:= true;

// showmessage(inttostr(subitem));

p.checkbox.checked:= strtobool(item.subitems[subitem-1]);

//建立並顯示button

p.markcheckbox:= tcheckbox.create(listview1);

p.markcheckbox.parent:= listview1;

p.markcheckbox.caption:= '';

p.markcheckbox.width:= 20;

p.markcheckbox.height:= 20;

p.markcheckbox.left:= rect.right - listview1.columns[3].width

- ((listview1.columns[2].width + p.markcheckbox.width) div 2);

p.markcheckbox.top:= rect.top;

p.markcheckbox.visible:= true;

p.guidcheckbox:= tcheckbox.create(listview1);

p.guidcheckbox.parent:= listview1;

p.guidcheckbox.caption:= '';

p.guidcheckbox.width:= 20;

p.guidcheckbox.height:= 20;

p.guidcheckbox.left:= rect.right

- ((listview1.columns[3].width + p.guidcheckbox.width) div 2);

p.guidcheckbox.top:= rect.top;

p.guidcheckbox.visible:= true;

item.data:= p; // 將checkbox及button的結構指標儲存於item.data屬性.

end;

end;

end;

C 中對ListView某一列進行重新整理

很簡單,listview.beginupdate for int i 0 i stringlist.length i 只對第三列進行重新整理 listview.endupdate items i subitems j text即為第i 1行的第j 1列的文字。需要注意的是重新整理的列事先應該有定義,...

C DataTable 某一列求和

c datatable 某一列求和 1.列為數字型別double total convert.todouble datatable.compute sum 需要求和的引數 2.列為string 型別 先轉為數字型別 再求和 遇到是採用了這個方法 會報錯,加using system.linq 命名空間...

MySQL 某一列累加

形如這樣的 利用變數 sumsalary sumsalary salary,進行累加,但是別忘記初始化變數 select sumsalary 0 來個例項,某客網的mysql題目 60 按照salary的累計和running total,其中running total為前n個當前 to date 9...