1.可以让DBGrid的一个Cell里出现的是一个CheckBox或Button吗?
我是想实现点一下某个Cell,用这个Cell里CheckBox表明选择了这一行
点一下另一个Cell,用这个Cell里的Button触发打开另一个窗口
2.把DBGrid的Option的dgRowSelect设为True,dgMutiSelect设为True后,选择的一行,怎么实现:点某一行中任一个Cell,这一行如果已是选择状态则变为未选择,未选择则变为已选择,“而其它行的选择状态不变”
我是想实现点一下某个Cell,用这个Cell里CheckBox表明选择了这一行
点一下另一个Cell,用这个Cell里的Button触发打开另一个窗口
2.把DBGrid的Option的dgRowSelect设为True,dgMutiSelect设为True后,选择的一行,怎么实现:点某一行中任一个Cell,这一行如果已是选择状态则变为未选择,未选择则变为已选择,“而其它行的选择状态不变”
解决方案 »
- Delphi中怎样得到鼠标的当前位置?
- 请问:Indy9移植到Indy10出现的问题
- delphi6.0+linux+oracle9i++php4.0?這個環境可以工作嗎?
- delphi动态调用dll,在线等(送100分)
- 三层数据库应用中出现访问拒绝的错误?
- 两个关于excel的小问题,请各位出手相助,急
- 哪里有中文版的delphi帮助或手册???
- 急!大家帮忙:怎样得到某个月的天数?
- 各位老师,谁会用delphy编五子棋人机对战程序,请告诉小弟,我给您鞠躬了!!!
- 如何获得已经被占用的SOCKET 端口的列表?急问!!!!
- 1.怎样把自己定义的数据类型集成到IDE中(需在那些*.pas单元文件中添加)? OR 2.模块间怎样调用自定义数据型别?(gz/up均有分...)
- 关于怎样设置主键的讨论————欢迎参与!
Cell中显示的是控件这个可能是比较麻烦,有没有懂的,可以请教一下吗?那我的第2个问题呢?
在DBGrid中布尔形数据显示为:为真时打一个"勾",为假时空白
附代码: dbgPPO : dbgrid , adoqryPPO : dataset
procedure TSPChargeForm.dbgPPODrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
left :integer;
begin
if Column=dbgPPO.Columns[0] then
begin
left :=Round((Rect.Right-Rect.Left-10)/2); dbgPPO.Canvas.Brush.Color :=clWhite; //去掉阴影
dbgPPO.Canvas.FillRect(Rect); dbgPPO.Canvas.Pen.Color :=clblue; //clTeal
dbgPPO.Canvas.Pen.Width :=1; dbgPPO.Canvas.MoveTo(Rect.Left+Left,Rect.Top+3);
dbgPPO.Canvas.LineTo(Rect.Left+Left+10,Rect.Top+3);
dbgPPO.Canvas.LineTo(Rect.Left+Left+10,Rect.Top+13);
dbgPPO.Canvas.LineTo(Rect.Left+Left,Rect.Top+13);
dbgPPO.Canvas.LineTo(Rect.Left+Left,Rect.Top+3); if adoqryPPO.FieldByName('ID').AsString='Y' then
begin
dbgPPO.Canvas.MoveTo(Rect.Left+Left,Rect.Top+6);
dbgPPO.Canvas.LineTo(Rect.Left+Left+4,Rect.Top+11);
dbgPPO.Canvas.LineTo(Rect.Left+Left+12,Rect.Top+1);
end;
end;
end;
2)在on cell click事件中改当前记录的布尔形数据的值,参见1)。 然后画。
3) 也可以直接用dxdbGrid来实现。 column类型中有CHECKBOX 。
2:我觉得好象如果打开了你要的multi应该就是这样的。具体没有试过