在dbgrid怎么实际checkbox功能

从Lion开始 2008-11-21 09:39:56
我想对显示的dbgrid中的数据进行选择,希望有个checkbox进行判定。但数据库又不能有些字段,怎么实现。
然把此选中的资料insert到另一个表格去,
...全文
223 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
bigfoot001 2008-12-15
  • 打赏
  • 举报
回复
建议使用第三方控件
liuhengwinner 2008-12-12
  • 打赏
  • 举报
回复
建议使用 功能最强大的 cxgrid ,我个人认为这是Delphi 最好的grid控件
无条件为你 2008-12-09
  • 打赏
  • 举报
回复
关注!
wychero 2008-12-09
  • 打赏
  • 举报
回复
我用的是IP的wwDBGrid ,个人感觉很好用。推荐一下。
fstao 2008-12-07
  • 打赏
  • 举报
回复
用ehlib控件吧
kitcause 2008-12-03
  • 打赏
  • 举报
回复
关注一下,
其实这个功能应用得比较普遍的,
让用户选择哪几条记录进行操作。
sw_ytts 2008-12-03
  • 打赏
  • 举报
回复
够狠
xuliabc 2008-11-25
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 eqapple 的回复:]
用三方控件dbgrideh吧.很简单方便
具体的用法如下:
对于Boolean型字段值在dbgrideh组件中自动显示为检查框。通常情况下我们需将非Boolean型字段值也此外观显示,如性别字段为字符型,字段值为“男性”时为选中,“女性”时为未选中。需要在keylist编辑器中设置实际存储数据值,第一行为选中时的值“1”,第二行为未选中的值 “0”,第三行为其它值“2”,支持三态显示。
[/Quote]

9楼的方法好像不行
eqapple 2008-11-25
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 xuliabc 的回复:]
引用 9 楼 eqapple 的回复:
用三方控件dbgrideh吧.很简单方便
具体的用法如下:
对于Boolean型字段值在dbgrideh组件中自动显示为检查框。通常情况下我们需将非Boolean型字段值也此外观显示,如性别字段为字符型,字段值为“男性”时为选中,“女性”时为未选中。需要在keylist编辑器中设置实际存储数据值,第一行为选中时的值“1”,第二行为未选中的值 “0”,第三行为其它值“2”,支持三态显示。


9楼的方法好像不行
[/Quote]

可行的
ld1201 2008-11-22
  • 打赏
  • 举报
回复
用cxgrid,不要写代码直接实现
eqapple 2008-11-22
  • 打赏
  • 举报
回复
用三方控件dbgrideh吧.很简单方便
具体的用法如下:
对于Boolean型字段值在dbgrideh组件中自动显示为检查框。通常情况下我们需将非Boolean型字段值也此外观显示,如性别字段为字符型,字段值为“男性”时为选中,“女性”时为未选中。需要在keylist编辑器中设置实际存储数据值,第一行为选中时的值“1”,第二行为未选中的值 “0”,第三行为其它值“2”,支持三态显示。
beifangke 2008-11-21
  • 打赏
  • 举报
回复
使用过的grid最dxGrid这方面设置好了,升级到cxGrid后找不到设置的地方了
长沙三毛 2008-11-21
  • 打赏
  • 举报
回复
你要使用Windows函数了,下面是俺的一个StringGrid绘制CheckBox的代码,俺没有DBGrid的,估计原理差不多

procedure Tfrm_Data_Check.ag_BBDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var
R: TRect;
begin
if (ACol = 0) and (ARow = 1) then begin // 第一列的起始位置,防止鼠标点击到固定行
Axis_X := Rect.Right;
Axis_Y := Rect.Top;
end;
if (ACol = 0) and (ARow > 0) then begin
ag_BB.Canvas.Brush.Color := ag_BB.Color;
R := Rect;
R.Top := R.Top + 5;
R.Bottom := R.Bottom - 4;
if ag_BB.Cells[0,ARow] = '是' then // 单元格的值是“是”
ag_BB.Canvas.Brush.Color := clSkyBlue
else
ag_BB.Canvas.Brush.Color := ag_BB.Color;
ag_BB.Canvas.FillRect(R);
DrawFrameControl(ag_BB.Canvas.Handle,R,DFC_BUTTON,GetSelState(ag_BB.Cells[ACol,ARow]));
end
end;

function Tfrm_Data_Check.GetSelState(s: String): Integer; // 取当前格的选择状态
begin
if s = '是' then
Result := DFCS_BUTTONCHECK or DFCS_CHECKED
else
Result := DFCS_BUTTONCHECK;
end;
happypolo 2008-11-21
  • 打赏
  • 举报
回复
dbgirdeh 很好用,建议使用第三方控件

happypolo 2008-11-21
  • 打赏
  • 举报
回复
dbgirdeh 很好用,建议使用第三方控件

火龙岛主 2008-11-21
  • 打赏
  • 举报
回复
dbgrid是不方便选择,你可以使用listview,他拥有checkbox功能。
nanchangfantasy 2008-11-21
  • 打赏
  • 举报
回复
是哦,没听明白到底楼主想怎么实现
杯中水2016 2008-11-21
  • 打赏
  • 举报
回复
楼主说的详细点
天行归来 2008-11-21
  • 打赏
  • 举报
回复
我把DBGrid控件使用一些技巧上传了,可以看一下。
http://d.download.csdn.net/down/795399/lynmison

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧