有没有办法把checkbox加到dbgrid里面去啊 做出类似我的网摘的效果 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不妨试试第三方按件cxGrid,cxTreeview或cnpack下的treeview都不错 可以加一个布尔类型字段自己画出来。procedure TSetCompanyFrm.DBSKNameDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);const CtrlState : array[Boolean] of Integer = (DFCS_BUTTONCHECK, DFCS_BUTTONCHECK or DFCS_CHECKED);begin if Column.Field.DataType = ftBoolean then begin DBSkName.Canvas.FillRect(Rect); DrawFrameControl(DBSkName.Canvas.Handle, Rect, DFC_BUTTON, CtrlState[Column.Field.AsBoolean]); end;end;用dbgrideh也可以自动显示出来 解决方法如下,自己重写OnDrawColumnCell事件即可procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;DataCol: Integer; Column: TColumn; State: TGridDrawState);constCtrlState: array[Boolean] of Integer = (DFCS_BUTTONCHECK, DFCS_BUTTONCHECK or DFCS_CHECKED);beginif Column.Field.DataType = ftBoolean thenbeginDBGrid1.Canvas.FillRect(Rect);DrawFrameControl(DBGrid1.Canvas.Handle,Rect, DFC_BUTTON, CtrlState[Column.Field.AsBoolean]);end;end;之前看到的一篇文章~~ 建议你改用ListView来做,自带的就有CheckBox功能。 (DFCS_BUTTONCHECK, DFCS_BUTTONCHECK or DFCS_CHECKED);为啥搞三个 相同的 状态啊 布尔值值有两个 这个 数组集合只要两个值就行了 数组只有0,1两个 下标啊 ftBoolean这个变量是怎么来的啊 看的一头雾水 查了下 好象是unit db单元文件下的 问下如何这些文件放在delphi的哪个目录下啊 if Column.Field.DataType = ftBoolean then这种方式,我也不明白。但用ListView可以实现。 dbgrid怎样实现以下功能 郁闷中,该不该跳槽??? 窄行打印纸该选哪个纸型?? 跪求UDP SOCKET通信原码(要求用api函数啊,不是udp控件啊)!! 散分,为★中国首次载人飞行成功★ 如何返回点击的对象名? ==用TRegistryIniFile能对HKEY_LOCAL_MACHINE操作吗?=== 中医是delphi,西医是C++? 谁知道怎样改fast report 2.4, 让它打印折行的汉字时才不会乱码? 请教大神软件问题 如何从字符串中提取 使用delphi2009开发三层数据库应用的方法
自己画出来。procedure TSetCompanyFrm.DBSKNameDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
const
CtrlState : array[Boolean] of Integer = (DFCS_BUTTONCHECK,
DFCS_BUTTONCHECK or DFCS_CHECKED);
begin
if Column.Field.DataType = ftBoolean then
begin
DBSkName.Canvas.FillRect(Rect);
DrawFrameControl(DBSkName.Canvas.Handle,
Rect,
DFC_BUTTON,
CtrlState[Column.Field.AsBoolean]);
end;
end;
用dbgrideh也可以自动显示出来
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
const
CtrlState: array[Boolean] of Integer = (DFCS_BUTTONCHECK, DFCS_BUTTONCHECK or DFCS_CHECKED);
begin
if Column.Field.DataType = ftBoolean then
begin
DBGrid1.Canvas.FillRect(Rect);
DrawFrameControl(DBGrid1.Canvas.Handle,Rect, DFC_BUTTON, CtrlState[Column.Field.AsBoolean]);
end;
end;之前看到的一篇文章~~
为啥搞三个 相同的 状态啊 布尔值值有两个 这个 数组集合只要两个值就行了
数组只有0,1两个 下标啊