说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

使dbgrid的某几笔资料变色-Delphi资料

HTML文档下载 WORD文档下载 PDF文档下载
使dbgrid的某几笔资料变色-Delphi资料

你可在 DBGrid 元件的 DrawDataCell 事件中

依资料的条件性来改变格子或文字的

颜色.

如 :

OnDrawDataCell(...)

begin

with TDBGrid(Sender) do

begin

if (条件) then

Canvas.TextOut(Rect.Left + 4

Rect.Top + 2

'要显示的文字

如表格的资料');

end;

而你会看到 DBGrid 的显示资料怎麽有重叠的情况

那是因为原本DBGrid

要显示的资料与 TextOut 所显示的资料重叠

解决方法 :

在 Query 元件所加入的栏位(在元件上按右键

会有 Add Fields...的选单)

不要显示资料的栏位的 OnGetText 事件中有一参数设定为 False;

procedure TForm1.Query1Detail1GetText(Sender: TField; var Text: string;

DisplayText: Boolean);

begin

// 决定在 DBGrid 得知表格资料时

要不要显示所得到的资料

False -> 不显示

// 就可避免与 TextOut 的文字重叠了

DisplayText : = False;

end;

end;

如果用 Delphi 3 处理很简单.

例如

对表中某字段当其数值小于0时为红字

其他为黑字.

在 DBGrid.OnDrawColumnCell(...) 中:

begin

if TableField.AsInteger < 0 then

DBGrid.Canvas.Font.Color := clRed

else

DBGrid.Canvas.Font.Color := clBlack;

DBGrid.DefaultDrawColumnCell(...);

end;

这样

对 Field 指定的格式仍旧生效

不必重写.

隐私之战:金山手机毒霸宣布开放安全检测平台 世界人民的头上有张监控大网——Xkeyscore 美国“监控门”情报收集系统 X-Keyscore 技术揭秘 为啥REST如此重要? 并非PHP Frameworks而是WordPress让PHP更加流行! 关于窗口的消息。。 help! VC中如何使窗口始终在最前方? 一个可能是javascript的问题? 以色列光学cpu,看看我们的龙心,我们落后多少 用那一款工具做GIF,比较方便? 怎么用LotusScript获得列表框的值? 如何修改列属性 关于一个EtCell控件帮定数据的问题,请教各位大佬!! 以色列光学cpu,看看我们的龙心,我们落后多少 我是想给你一个机会 用英语怎么说说 “给我次机会,我会做的更好”这句话用英语怎么说 足球在床下用英语怎么翻译 他们把水果卖给我们,然后从我们这儿买蔬菜.(英文翻 英语翻译:你去过北京没 英语翻译It's 7:30 on Monday m 怎样测量物理课本对桌面的压强 (要两种测量方法) 英语翻译 1我隔壁的男子.2再英国度假. "每项成绩等级后面的数值表示该项成绩所处等级的位置 美国职棒大赛 球员为赢对手纷纷留长胡日本6名女性涉嫌在网络上上传猥亵视频韩考虑增加新一代战机项目预算 现为4德防长批评美国监控传闻 称欧美关系将俄总理七小时“安徽印象”宁乡西部、浏阳东部水源涵养地将实行封一周焦点人物榜陈光标赴美欲买《纽约时报》男子路过小区小跑赶车被当成贼捆绑挨揍丰台农民可乘免费班车进城上班末星史上第一大骗子铸天纪变异强化乱世枭王东崖云舫旅游回香阁旅游小天台旅游小花台旅游纳加阔特观景台旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘