⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 delp024.html

📁 对于学习很有帮助
💻 HTML
字号:
<html><!-- #BeginTemplate "/Templates/delphi.dwt" -->
<head>
<!-- #BeginEditable "doctitle" --> 
<title>为Delphi数据表格增加彩色</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta NAME="author" VALUE="独孤求败(Fwolf)">
<!-- #EndEditable --> 
<style type="text/css">
<!--
body {  font-family: "宋体"; font-size: 9pt}
td {  font-family: "宋体"; font-size: 9pt}
a:hover {  text-decoration: underline}
a {  text-decoration: none}
input {  font-family: "宋体"; font-size: 9pt}
select {  font-family: "宋体"; font-size: 9pt}
-->
</style>
</head>


<body>
<table width="98%" border="0" align="center">
  <tr> 
    <td width="33%"><a href="../../../index.html"><img src="../../../logos/fwolf9.gif" width="271" height="60" alt="独孤之所首页" border="0"></a></td>
    <td width="67%"> 
      <div align="center"> </div>
    </td>
  </tr>
</table>
<table width="100%" border="0" align="center" cellspacing="1" bgcolor="#66FF66">
  <tr> 
    <td width="90%"><a href="../../../index2.html">独孤之所</a> > <a href="../../book.htm">天下文章</a> 
      > <a href="../delphi.html">Delphi</a> > <font color="#FF3333"><!-- #BeginEditable "2%C7%F8" -->为Delphi数据表格增加彩色<!-- #EndEditable --></font> 
    </td>
    <td width="10%"> 
      <div align="center"><a href="javascript:window.close()">[关闭窗口]</a></div>
    </td>
  </tr>
</table>
<hr size="1">
<br>
<table width="584" border="0" align="center" cellspacing="1">
  <tr> 
    <td width="582"> <font color="#FF3333"> 
      <div align="center"><!-- #BeginEditable "%B1%EA%CC%E2" -->为Delphi数据表格增加彩色<!-- #EndEditable --></div>
      </font> </td>
  </tr>
  <tr> 
    <td width="582"> 
      <div align="center"><!-- #BeginEditable "%D7%F7%D5%DF" --><!-- #EndEditable --></div>
    </td>
  </tr>
  <tr> 
    <td width="582"><!-- #BeginEditable "%CE%C4%B1%BE%C7%F8" --> 
      <center>
        <p align="left">Delphi中数据控制构件DBGrid是用来反映数据表的最重要、也是最常用的构件。在应用程序中,如果以彩色的方式来显示DBGrid,将会增加其可视性,尤其在显示一些重要的或者是需要警示的数据时,可以改变这些数据所在的行或列的前景和背景的颜色。 
          <br>
          <br>
            DBGrid属性DefaultDrawing是用来控制Cell(网格)的绘制。若DefaultDrawing的缺省设置为True,意思是Delphi使用DBGrid的缺省绘制方法来制作网格和其中所包含的数据,数据是按与特定列相连接的Tfield构件的DisplayFormat或EditFormat特性来绘制的;若将DBGrid的DefaultDrawing特性设置成False,Delphi就不绘制网格或其内容,必须自行在TDBGrid的OnDrawDataCell事件中提供自己的绘制例程(自画功能)。 
          <br>
          <br>
            在这里将用到DBGrid的一个重要属性:画布Canvas,很多构件都有这一属性。Canvas代表了当前被显示DBGrid的表面,你如果把另行定义的显示内容和风格指定给DBGrid对象的Canvas,DBGrid对象会把Canvas属性值在屏幕上显示出来。具体应用时,涉及到Canvas的Brush属性和FillRect方法及TextOut方法。Brush属性规定了DBGrid.Canvas显示的图像、颜色、风格以及访问Windows 
          GDI 对象句柄,FillRect方法使用当前Brush属性填充矩形区域,方法TextOut输出Canvas的文本内容。 <br>
          <br>
            以下用一个例子来详细地说明如何显示彩色的DBGrid。在例子中首先要有一个DBGrid构件,其次有一个用来产生彩色筛选条件的SpinEdit构件,另外还有ColorGrid构件供自由选择数据单元的前景和背景的颜色。 
          <br>
          <br>
            1.建立名为ColorDBGrid的Project,在其窗体Form1中依次放入所需构件,并设置属性为相应值,具体如下所列: <br>
             Table1 DatabaseName: DBDEMOS <br>
          TableName: EMPLOYEE.DB <br>
          Active: True; <br>
            DataSource1 DataSet: Table1 <br>
            DBGrid1 DataSource1: DataSource1 <br>
          DefaultDrawing: False <br>
            SpinEdit1 Increment:200 <br>
          Value: 20000 <br>
            ColorGrid1 GridOrdering: go16*1 <br>
          <br>
            2.为DBGrid1构件OnDrawDataCell事件编写响应程序: <br>
            procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: 
          TRect;Field: TField; State: TGridDrawState); <br>
            begin <br>
             if Table1.Fieldbyname(′Salary′).value=SpinEdit1.value then <br>
             DBGrid1.Canvas.Brush.Color:=ColorGrid1.ForeGroundColor <br>
             else <br>
             DBGrid1.Canvas.Brush.Color:=ColorGrid1.BackGroundColor; <br>
             DBGrid1.Canvas.FillRect(Rect); <br>
             DBGrid1.Canvas.TextOut(Rect.left+2,Rect.top+2,Field.AsString); <br>
            end; <br>
          <br>
            这个过程的作用是当SpinEdit1给定的条件得以满足时,如′salary′变量低于或等于SpinEdit1.Value时,DBGrid1记录以ColorGrid1的前景颜色来显示,否则以ColorGrid1的背景颜色来显示。然后调用DBGrid的Canvas的填充过程FillRect和文本输出过程重新绘制DBGrid的画面。 
          <br>
          <br>
            3.为SpinEdit1构件的OnChange事件编写响应代码: <br>
            procedure TForm1.SpinEdit1Change(Sender: TObject); <br>
            begin <br>
             DBGrid1.refresh; <br>
            end; <br>
          <br>
            当SpinEdit1构件的值有所改变时,重新刷新DBGrid1。 <br>
          <br>
            4.为ColorGrid1的OnChange事件编写响应代码: <br>
            procedure TForm1.ColorGrid1Change(Sender: TObject); <br>
            begin <br>
             DBGrid1.refresh; <br>
           end; <br>
          <br>
            当ColorGrid1的值有所改变时,即鼠标的右键或左键单击ColorGrid1重新刷新DBGrid1。 <br>
          <br>
            5.为Form1窗体(主窗体)的OnCreate事件编写响应代码: <br>
            procedure TForm1.FormCreate(Sender: TObject); <br>
            begin <br>
             ColorGrid1.ForeGroundIndex:=9; <br>
             ColorGrid1.BackGroundIndex:=15; <br>
            end; <br>
          <br>
            在主窗创建时,将ColorGrid1的初值设定前景为灰色,背景为白色,也即DBGrid的字体颜色为灰色,背景颜色为白色。 <br>
          <br>
            6.现在,可以对ColorDBGrid程序进行编译和运行了。当用鼠标的左键或右键单击ColorGrid1时,DBGrid的字体和背景颜色将随之变化。 
          <br>
          <br>
            在本文中,只是简单展示了以彩色方式显示DBGrid的原理,当然,还可以增加程序的复杂性,使其实用化。同样道理,也可以将这个方法扩展到其他拥有Canvas属性的构件中,让应用程序的用户界面更加友好。 
          <br>
          <br>
          <br>
          <br>
          <br>
        <div align=right></div>
                        </center>
      <!-- #EndEditable --></td>
  </tr>
  <tr>
    <td width="582"><!-- #BeginEditable "%B1%B8%D7%A2" -->摘自天极网<!-- #EndEditable --></td>
  </tr>
</table>

<br>
<hr size="1">
<table width="25%" border="1" align="center" cellspacing="0" cellpadding="0" bordercolorlight="#CCCCFF" bordercolordark="#000033" bordercolor="#6666FF">
  <tr align="center"> 
    <td> 转载请注明出于 <a href="http://fwolf.yeah.net" target="_blank">独孤之所</a><!--Fwolf出品
fwolf001@163.net
http://fwolf.yeah.net --> </td>
  </tr>
  <tr align="center"> 
    <td> 
      <script>document.write("<a href=http://www.topcn.com/siteinfo.asp?UserName=fwolf2000&SiteType=0 target=_blank><img src=http://www1.topcn.com:8081/statistics.asp?fwolf2000&referURL="+escape(top.document.referrer)+"&curURL="+escape(top.document.URL)+"&imgStyle=0"+" border=0 alt='Top中文网站龙虎榜' ></a>");</script>
      <script>document.write("<a href=http://www.textclick.com/viewmain.asp?name=fwolf2000 target=_blank><img src=http://ad.t2t2.com/stat.asp?user=fwolf2000&refer="+escape(document.referrer)+"&cur="+escape(document.URL)+" alt=太极统计 border=0></a>");</script>
    </td>
  </tr>
</table>
<table width="100%" border="0" align="center" cellspacing="1" bgcolor="#66FF66">
  <tr> 
    <td width="10%"><a href="javascript:window.close()">[关闭窗口]</a></td>
    <td width="90%"> 
      <div align="left"></div>
    </td>
  </tr>
</table>
<div id="Layer1" style="position:absolute; width:470px; height:60; z-index:1; left: 293px; top: 13px; overflow: hidden"> 
  <table width="100%" border="0" cellspacing="0" cellpadding="0" height="60">
    <tr> 
      <td><a href="http://202.99.67.100/adclick2/click/random.cgi?job=go&id=1490" target="_blank"><img src="http://202.99.67.100/adclick2/click/random.cgi?id=1490" border="0" width="468" height="60"></a> 
      </td>
    </tr>
  </table>
</div>
<div align="center"></div>
<p align="center"> 
<script language="JavaScript1.1" src=http://ad.t2t2.com/textclick.asp?user=fwolf&style=4&bkcolor=no></script>
</p>
<p align="center">&nbsp; </p>
</body>
<!-- #EndTemplate --></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -