怎样实现在DBGrid每条记录可中加入TButton 控件?
解决方案 »
- sql数据库
- 这段代码既然打印不出条码,大家来看看...郁闷呀....
- 如何获得邮箱服务的POP地址,通过DNS解析?(解决立即给分,不够再加,急)
- 100分讨论quickreport中QRDBRichText1 或 QRRichText1 实现换行问题。
- 007剧场【中国最好的免费影院】激情大片,完全免费!
- 大家说说CSDN都有哪些缺点,为什么人气这么差,根本没有高手过来,提个问题几天没人应。 我们还有必要守住这片田地吗?
- 如何使程序更小~~~~~
- 挥泪求救系列之三:仍然是CAD软件中图形类应该如何设计
- 请问用delphi做证券交易及大屏显示系统需要那些技术,使用那些关键控件,报价多少,工作量多大
- 如何象计划任务中,给combobox加一个选择日期的控件
- 怎样把数据库备份和恢复!谢谢!!
- 在线程中,能否打开ClientDataSet数据集???
1.设置Column的ButtonStyle为cbsEllipsis,则该列出现代“...“的按钮,点击是时触发DBGrid的OnEditButtonClick事件。
2.也可以设置Column的PickList属性,该列将显示一个压缩框。
处理自绘事件(第三列显示Button,文字靠左,上下居中):
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
s:string;
begin
with DBGrid1 do
if DataCol=2 then
begin
s:=Column.Field.AsString;
DrawFrameControl(Canvas.Handle,Rect,DFC_BUTTON,DFCS_BUTTONPUSH);
SetBkMode(Canvas.Handle,TRANSPARENT);
Canvas.TextOut(
Rect.Left+4,
Rect.Top+(Rect.Bottom-Rect.Top-Canvas.TextHeight('s'))div 2,
s);
end;
end;
Canvas.TextOut(
Rect.Left+4,
Rect.Top+(Rect.Bottom-Rect.Top-Canvas.TextHeight(s))div 2,
s);