学院首页 软件应用 编程开发 创意设计 认证培训 软件论坛
ASP ASP.NET PHP JSP SQL MYSQL Java VB

您的位置:学院 >> 编程开发 >> Delphi >> 为Delphi数据表格增加彩色


为Delphi数据表格增加彩色


elphi中数据控制构件DBGrid是用来反映数据表的最重要、也是最常用的构件。在应用程序中,如果以彩色的方式来显示DBGrid,将会增加其可视性,尤其在显示一些重要的或者是需要警示的数据时,可以改变这些数据所在的行或列的前景和背景的颜色。

  DBGrid属性DefaultDrawing是用来控制Cell(网格)的绘制。若DefaultDrawing的缺省设置为True,意思是Delphi使用DBGrid的缺省绘制方法来制作网格和其中所包含的数据,数据是按与特定列相连接的Tfield构件的DisplayFormat或EditFormat特性来绘制的;若将DBGrid的DefaultDrawing特性设置成False,Delphi就不绘制网格或其内容,必须自行在TDBGrid的OnDrawDataCell事件中提供自己的绘制例程(自画功能)。

  在这里将用到DBGrid的一个重要属性:画布Canvas,很多构件都有这一属性。Canvas代表了当前被显示DBGrid的表面,你如果把另行定义的显示内容和风格指定给DBGrid对象的Canvas,DBGrid对象会把Canvas属性值在屏幕上显示出来。具体应用时,涉及到Canvas的Brush属性和FillRect方法及TextOut方法。Brush属性规定了DBGrid.Canvas显示的图像、颜色、风格以及访问Windows GDI 对象句柄,FillRect方法使用当前Brush属性填充矩形区域,方法TextOut输出Canvas的文本内容。

  以下用一个例子来详细地说明如何显示彩色的DBGrid。在例子中首先要有一个DBGrid构件,其次有一个用来产生彩色筛选条件的SpinEdit构件,另外还有ColorGrid构件供自由选择数据单元的前景和背景的颜色。

  1.建立名为ColorDBGrid的Project,在其窗体Form1中依次放入所需构件,并设置属性为相应值,具体如下所列:
   Table1 DatabaseName: DBDEMOS
TableName: EMPLOYEE.DB
Active: True;
  DataSource1 DataSet: Table1
  DBGrid1 DataSource1: DataSource1
DefaultDrawing: False
  SpinEdit1 Increment:200
Value: 20000
  ColorGrid1 GridOrdering: go16*1

  2.为DBGrid1构件OnDrawDataCell事件编写响应程序:
  procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;Field: TField; State: TGridDrawState);
  begin
   if Table1.Fieldbyname(′Salary′).value=SpinEdit1.value then
   DBGrid1.Canvas.Brush.Color:=ColorGrid1.ForeGroundColor
   DBGrid1.Canvas.Brush.Color:=ColorGrid1.BackGroundColor;
   DBGrid1.Canvas.FillRect(Rect);
   DBGrid1.Canvas.TextOut(Rect.left+2,Rect.top+2,Field.AsString);
  end;

  这个过程的作用是当SpinEdit1给定的条件得以满足时,如′salary′变量低于或等于SpinEdit1.Value时,DBGrid1记录以ColorGrid1的前景颜色来显示,否则以ColorGrid1的背景颜色来显示。然后调用DBGrid的Canvas的填充过程FillRect和文本输出过程重新绘制DBGrid的画面。

  3.为SpinEdit1构件的OnChange事件编写响应代码:
  procedure TForm1.SpinEdit1Change(Sender: TObject);
  begin
   DBGrid1.refresh;
  end;

  当SpinEdit1构件的值有所改变时,重新刷新DBGrid1。

  4.为ColorGrid1的OnChange事件编写响应代码:
  procedure TForm1.ColorGrid1Change(Sender: TObject);
  begin
   DBGrid1.refresh;
 end;

  当ColorGrid1的值有所改变时,即鼠标的右键或左键单击ColorGrid1重新刷新DBGrid1。

  5.为Form1窗体(主窗体)的OnCreate事件编写响应代码:
  procedure TForm1.FormCreate(Sender: TObject);
  begin
   ColorGrid1.ForeGroundIndex:=9;
   ColorGrid1.BackGroundIndex:=15;
  end;

  在主窗创建时,将ColorGrid1的初值设定前景为灰色,背景为白色,也即DBGrid的字体颜色为灰色,背景颜色为白色。

  6.现在,可以对ColorDBGrid程序进行编译和运行了。当用鼠标的左键或右键单击ColorGrid1时,DBGrid的字体和背景颜色将随之变化。

  在本文中,只是简单展示了以彩色方式显示DBGrid的原理,当然,还可以增加程序的复杂性,使其实用化。同样道理,也可以将这个方法扩展到其他拥有Canvas属性的构件中,让应用程序的用户界面更加友好。
技术文章快速查找

栏目导航
软件应用
·操作系统 ·杀毒防黑 ·应用软件
·聊天软件 ·网络软件  
Web开发
·ASP ·JavaScript ·CGI
·JSP ·VbScript ·Web服务器
·PHP ·XML  
开发语言
·VB ·VC ·ASP.NET
·Java ·C/C++ ·Delphi
数据库开发
·MySQL ·SQL/Access ·PowerBuilder
·Oracle ·DB2  
网站设计
·Flash ·Dreamweaver ·HTML/CSS
·Fireworks ·FrontPage  
平面设计
·Photoshop ·CorelDraw ·AutoCAD
·FreeHand ·Illustrator ·3DsMAX
媒体动画
·Director ·Authorware ·Maya
·视频处理    


相关软件 产品库推荐
·笔记本 ·台式机 ·服务器
·数码相机 ·手机 ·GPS
·DV摄像机 ·MP3 ·MP4
·CPU ·硬盘 ·内存
·主板 ·显卡 ·显示器
·打印机 ·投影机 ·路由器

游客 发表于2008-7-24 10:08:09
好...
游客 发表于2008-7-24 10:07:34
对"为Delphi数据表格增加彩色"的评论 - 快速回贴
内容:
  [完成后可按Ctrl+Enter发布]

百度中 为Delphi数据表格增加彩色 相关内容
Google搜索中 为Delphi数据表格增加彩色 相关内容
雅虎中 为Delphi数据表格增加彩色 相关内容
Sogou搜索中 为Delphi数据表格增加彩色 相关内容

相关软件 最新回复帖子:

·为Delphi数据表格增加彩色
·Fireworks轻松打造下拉导航条
·3Ds max多边形建模主要功能命令
·让文件井然有序:高手文件管理经验谈
·有关3DS MAX4设置的几个小问题
·妙笔生辉--书写效果(一)
·Photoshop滤镜打造精致水晶美女头像
·AutoCAD三维造型--弹簧的简单画法
·网上常用表情符号
·实例学用CorelDRAW9(一)


  相关软件 为Delphi数据表格增加彩色相关文章
建立应用软件注册安全机制 在Delphi中自动检测、建立数据库别名和表格
在Delphi程序中维护DBF数据库 用Delphi 开发数据库程序经验三则
在Delphi的DBGrid中插入其他可视组件 Delphi3数据库编程中的查找字段
Delphi数据库开发及统计表格设计 用Delphi4的QReport部件生成报表
也谈为Delphi中数据库报表加网格 在Dephi中使用TStream读写数据的技巧
Delphi中的消息处理 在DEPHI程序中使用ADO对象存取ODBC数续
在DELPHI程序中使用ADO对象存取ODBC数 在DELPHI程序中动态设置ODBC数据源
精简DELPHI数据库系统的补充 如何对数据流 INSERT、APPEND
定制任务栏上的系统菜单 活用 SetSelTextBuf
捕捉来自 Thread 的异常 在DEPHI 4.0中实现动画功能