惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
Vercel News
Vercel News
F
Fortinet All Blogs
Y
Y Combinator Blog
The GitHub Blog
The GitHub Blog
P
Proofpoint News Feed
M
MIT News - Artificial intelligence
Blog — PlanetScale
Blog — PlanetScale
H
Help Net Security
B
Blog RSS Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Engineering at Meta
Engineering at Meta
爱范儿
爱范儿
V
Visual Studio Blog
Stack Overflow Blog
Stack Overflow Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
B
Blog
宝玉的分享
宝玉的分享
云风的 BLOG
云风的 BLOG
U
Unit 42
博客园 - 司徒正美
大猫的无限游戏
大猫的无限游戏
D
DataBreaches.Net
博客园 - 叶小钗
Hugging Face - Blog
Hugging Face - Blog
MongoDB | Blog
MongoDB | Blog
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog
S
Schneier on Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Apple Machine Learning Research
Apple Machine Learning Research
Attack and Defense Labs
Attack and Defense Labs
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
A
About on SuperTechFans
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
L
LangChain Blog
博客园 - 【当耐特】
Recorded Future
Recorded Future
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
aimingoo的专栏
aimingoo的专栏
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Hacker News: Ask HN
Hacker News: Ask HN
Jina AI
Jina AI
Schneier on Security
Schneier on Security
W
WeLiveSecurity
Microsoft Security Blog
Microsoft Security Blog
博客园_首页
博客园 - 聂微东

博客园 - Eagletian

修改时间 小结 薪酬管理 小结 小结 小结 管理定律大全 www.shanzei.com ITSM网上资源导航 From:act.it.sohu.com 《IT服务管理:概念、理解与实施》 自制精美易用的DBGrid from: www.delphifans.com 谁有能让窗体自动适应显示器分辨率的控件? From: www.delphibbs.com Delphi分布式系统(MIDAS)中动态调用存储过程 From: www.ccw.com.cn Delphi - Stored procedures returning data (MSSQL, Firebird, Oracle) From: http://www.scip.be 图像数据的数据库应用程序 SQL Server存储图像数据的策略与方法 在delphi中获取SQL Server的错误信息初探 我对DELPHI写的几个基类型 From: www.donews.net Delphi 7.0常用函数速查手册 创建Photoshop式浮动窗口应用程序 From:csdn Delphi自定义消息应用一例 From:www.bvtc.com.cn
实战Delphi数据网格色彩特效
Eagletian · 2005-03-04 · via 博客园 - Eagletian

Delphi中的数据网格控件(TDbGrid)对于显示和编辑数据库中大量的数据起着十分重要的作用;然而,在使用数据网格控件的同时,也往往因为表格中大量的数据不易区分,而令操作者眼花缭乱。如何提高网格控件的易用性,克服它的此项不足呢?本文从改变数据网格的色彩配置角度,提出了一种解决办法。

  以下为数据网格控件的6种特殊效果的实现方法,至于数据网格控件与数据集如何连接的方法从略。

  1. 纵向斑马线效果:实现网格的奇数列和偶数列分别以不同的颜色显示,以区别相邻的数据列。

  file://在DbGrid的DrawColumnCell事件中编写如下代码:

  Case DataCol Mod 2 = 0 of

   True: DbGrid1.Canvas.Brush.Color:= clBlue; file://偶数列用蓝色

   False: DbGrid1.Canvas.Brush.Color:= clAqua; file://奇数列用浅绿色

  End;

  DbGrid1.Canvas.Pen.Mode:=pmMask;

  DbGrid1.DefaultDrawColumnCell (Rect, DataCol, Column, State);

2. 纵向斑马线,同时以红色突出显示当前单元格效果:以突出显示当前选中的字段。

  file://将上述代码修改为:

  Case DataCol Mod 2 = 0 of

   True: DbGrid1.Canvas.Brush.Color:= clBlue; file://偶数列用蓝色

   False: DbGrid1.Canvas.Brush.Color:= clAqua; file://奇数列用浅绿色

  End;

  If ((State = [gdSelected]) or (State=[gdSelected,gdFocused])) then

    If Not DbGrid1.SelectedRows.CurrentRowSelected then

      DbGrid1.Canvas.Brush.Color:=clRed; file://当前选中单元格显示红色       DbGrid1.Canvas.Pen.Mode:=pmMask;

      DbGrid1.DefaultDrawColumnCell (Rect, DataCol, Column, State);

上述两种方法突出了列的显示效果。

  3.在数据网格中以红色突出显示当前选中的行。

  设置DbGrid控件的Options属性中的dgRowSelect属性为真,Color属性为clAqua(背景色), 在DbGrid的DrawColumnCell事件中编写如下代码:

  if ((State = [gdSelected]) or (State=[gdSelected,gdFocused])) then

   DbGrid1.Canvas.Brush.color:=clRed; file://当前行以红色显示,其它行使用背景的浅绿色

   DbGrid1.Canvas.pen.mode:=pmmask;

   DbGrid1.DefaultDrawColumnCell (Rect, DataCol, Column, State);

  4.行突显的斑马线效果:既突出当前行,又区分不同的列(字段)。

  file://其它属性设置同3,将上述代码修改为:

  if ((State = [gdSelected]) or (State=[gdSelected,gdFocused])) then

   begin

    Case DataCol Mod 2 = 0 of

     True : DbGrid1.Canvas.Brush.color:=clRed; file://当前选中行的偶数列显示红色

     False: DbGrid1.Canvas.Brush.color:=clblue; file://当前选中行的奇数列显示蓝色

    end;

   DbGrid1.Canvas.pen.mode:=pmmask;

   DbGrid1.DefaultDrawColumnCell (Rect, DataCol, Column, State);

  end;

  file://其它属性设置同3,将上述代码修改为:

  Case Table1.RecNo mod 2 = 0 of file://根据数据集的记录号进行判断

   True : DbGrid1.Canvas.Brush.color:=clAqua; file://偶数行用浅绿色显示

   False: DbGrid1.Canvas.Brush.color:=clblue; file://奇数行用蓝色表示

  end;

  if ((State = [gdSelected]) or (State=[gdSelected,gdFocused])) then file://选中行用红色显示

   DbGrid1.Canvas.Brush.color:=clRed;

   DbGrid1.Canvas.pen.mode:=pmMask;

   DbGrid1.DefaultDrawColumnCell (Rect, DataCol, Column, State);

  6.双向斑马线效果:即行间用不同色区分,同时,选中行以纵向斑马线效果区分不同的列。

  file://其它属性设置同3,将上述代码修改为:

  Case Table1.RecNo mod 2 = 0 of file://根据数据集的记录号进行判断

   True : DbGrid1.Canvas.Brush.color:=clAqua; file://偶数行用浅绿色显示

   False: DbGrid1.Canvas.Brush.color:= clblue; file://奇数行用蓝色表示

  end;

  If ((State = [gdSelected]) or (State=[gdSelected,gdFocused])) then

  Case DataCol mod 2 = 0 of

   True : DbGrid1.Canvas.Brush.color:=clRed; file://当前选中行的偶数列用红色

   False: DbGrid1.Canvas.Brush.color:= clGreen; file://当前选中行的奇数列用绿色表示

  end;

  DbGrid1.Canvas.pen.mode:=pmMask;

  DbGrid1.DefaultDrawColumnCell (Rect, DataCol, Column, State);

上述6种方法分别就数据网格控件的列和行的色彩进行了设置,读者可以根据自己的需要设置特效。该程序在Delphi5中测试通过。