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...