您的位置:学习中国 推荐教程 Delphi 正文
原作者:kuku 添加时间:2007-06-11 原文发表:2007-06-11 人气:24 来源:互联网

-----------------------------------------------------------------------------------------------------------------------------------------------

本文提示:《Ehlib的颜色控制及打印》是本站编辑们为广大网友精选的实用文章,本文阐述了关于文章的相关理论,相对来说专业性强,但是本文只是针对于某个问题提出的见解与论述,未必能辐射到相关问题的方方面面,所以本文处理问题的方法仅仅为您提供一些参考。更多问题请查阅学习中国网其他栏目哦.

-----------------------------------------------------------------------------------------------------------------------------------------------

 很多说根据条件在数据网格中显示不同颜色的说法都是在DrawColumnCell事件里,这样显示没有问题,但在ehlib中如果想打印出来可就不行了。
ehlib提供了GetCellParams事件,可以显示和打印
//只能显示,不能打印
procedure TfrmQueryContractInfo.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
var
OldColor,OldColumnColor:TColor;
v:TColCellParamsEh;
begin
{ OldColor:=DBGrid1.Canvas.Font.Color ;
if (Column.Field.FieldName = '填制调单时间') then
if (DBGrid1.DataSource.DataSet.FieldByName('填制调单时间').AsDateTime >DBGrid1.DataSource.DataSet.FieldByName('应发货时间').AsDateTime) then
begin
  //v:=TColCellParamsEh.Create ;
  //Column.GetColCellParams(true,v);
  //v.Font.Color :=clRed;
  //Column.FillColCellParams(v);
  //v.Free;
  DBGrid1.Canvas.font.Color := clRed;
end;

//Column.GetColCellParams .FillColCellParams()

if (Column.Field.FieldName = '移交时间') then
if (DBGrid1.DataSource.DataSet.FieldByName('移交时间').AsDateTime >DBGrid1.DataSource.DataSet.FieldByName('应移交时间').AsDateTime) then
  DBGrid1.Canvas.Font.Color := clRed;

if (Column.Field.FieldName = '填制运输单时间') then
if (DBGrid1.DataSource.DataSet.FieldByName('填制运输单时间').AsDateTime >DBGrid1.DataSource.DataSet.FieldByName('填制调单时间').AsDateTime) then
  DBGrid1.Canvas.Font.Color := clRed;

DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
DBGrid1.Canvas.Font.Color:=OldColor;
}
end;
//可以显示,可以打印
procedure TfrmQueryContractInfo.DBGrid1GetCellParams(Sender: TObject;
Column: TColumnEh; AFont: TFont; var Background: TColor;
State: TGridDrawState);
var
OldColor,OldColumnColor:TColor;
v:TColCellParamsEh;
begin
//OldColor:=DBGrid1.Canvas.Font.Color ;
if (Column.Field.FieldName = '填制调单时间') then
if (DBGrid1.DataSource.DataSet.FieldByName('填制调单时间').AsDateTime >DBGrid1.DataSource.DataSet.FieldByName('应发货时间').AsDateTime) then
  AFont.Color := clRed;

if (Column.Field.FieldName = '移交时间') then
if (DBGrid1.DataSource.DataSet.FieldByName('移交时间').AsDateTime >DBGrid1.DataSource.DataSet.FieldByName('应移交时间').AsDateTime) then
  AFont.Color := clRed;

if (Column.Field.FieldName = '填制运输单时间') then
if (DBGrid1.DataSource.DataSet.FieldByName('填制运输单时间').AsDateTime >DBGrid1.DataSource.DataSet.FieldByName('填制调单时间').AsDateTime) then
  AFont.Color := clRed;

if (Column.Field.FieldName = '实际到货时间') then
if (DBGrid1.DataSource.DataSet.FieldByName('实际到货时间').AsDateTime >DBGrid1.DataSource.DataSet.FieldByName('要求到货时间').AsDateTime) then
  AFont.Color := clRed;
//DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
//DBGrid1.Canvas.Font.Color:=OldColor;
end; 
本页地址
收藏到:[收藏夹] [百度搜藏] [新浪ViVi] [POCO网摘] [ 和讯网摘] [好哦网摘] [Google书签]
               
[搜狐网摘] [365Key网摘] [天极网摘] [我摘] [博采网摘] [igooi网摘]
相关文章

直接点击title就可按点击的那个字段排序的方
在Delphi里播放Flash动画
字符串列表及应用(一)
字符串列表及应用(二)
Delphi面向对象的编程方法(四)
Delphi面向对象的编程方法(三)
Delphi面向对象的编程方法(二)
Delphi面向对象的编程方法(一)
Delphi快速入门(五)
Delphi快速入门(四)
在delphi7中利用mscomm控件编程
DBGridEH 所有列宽自动适应的实现
Borland Developer Studio 2006
使用Delphi 2005 开发简单的WinCE程序
Delphi2006的新特性
新功能StateChart功能展示 with ECO ASP .N
Delphi2006的新功能:记录类型操作符重载
Delphi与SQL Server存储过程编程详解
Delphi MIS开发架构心得
用DLL方式封装MDI子窗体

相关评论


本文章所属分类:首页 推荐教程 Delphi   Delphi