如何在listview或dbgrid中实现方框打勾的功能(100分)

  • 主题发起人 主题发起人 wyw
  • 开始时间 开始时间
W

wyw

Unregistered / Unconfirmed
GUEST, unregistred user!
在一些安装安装程序中,常让我们选择需要安装的项,在每一项的前面都有
一个小方框如果选择了该项,那么在方框中就会打个钩,现在我也想在deiphi中
实现该功能,不知道该用什么控件及怎么用。
 
如果用ListView:
Set CheckBoxes to True to make check boxes appear next to the list items
when ViewStyle is vsList or vsReport. Each line in the list displays a single check box.

如果用DBGrid:
OnDrawColumnCell里可以实现的,画个图而已
 
dbgrid中的可以这样做,放一个dbcheck在form中,visible=false;
procedure TForm1.dbgriddrawcolumcell(..);
begin
if (dbfocused in state) and(column.field=table1senior) then
begin
dbcheckbox1.setbounds(rect.left+dbgrid1.left+1,
rect.top+dbgrid1.top+1,
rect.right-rect.left,
rect.bottom-rect.top);
end;
end;

procedure TForm1.dbgrid1colenter(..);
begin
if dbgird1.columns[dbgrid1.selectedindex].field=tablesenior then
dbcheckbox1.visible:=true
else
dbcheckbox1.visible:=false;
end;
procedure TForm1.dbgird1keypress(..);
begin
if dbcheckbox1.visible and(ord(key)>31) then
begin
key:=#0;
table1.edit;
dbcheckbox1.checked:=not checkbox1.checked;
dbcheckbox1.field.asboolean:=dbcheckbox1.checked;
end;
end;
 
delphi本身就有checklistbox!
至于dbgrid,用infopower或者在网上看看吧。
vcl.vclxx.com
 
多人接受答案了。
 
后退
顶部