请教 johnsonrao(johnson) 下面是我的代码,该如何改进?
if query1.eof<>query1.bof then
begin
if (copy(query1.FieldByName('yname').value,length(query1.FieldByName('yname').value)-3,4)='小计') and (length(query1.FieldByName('yno').value)=7) then
dbgrid1.Canvas.Brush.Color := clinfobk
else if (copy(query1.FieldByName('yname').value,length(query1.FieldByName('yname').value)-3,4)='小计') and (length(query1.FieldByName('yno').value)=4) then
dbgrid1.canvas.brush.color:=$00FEFED1
else if (copy(query1.fieldbyname('yname').value,length(query1.FieldByName('yname').value)-3,4)='小计') and (length(query1.FieldByName('yno').value)=5) then
dbgrid1.canvas.brush.color:=$00DEFCD6
else if (copy(query1.fieldbyname('yname').value,length(query1.FieldByName('yname').value)-3,4)='小计') and (length(query1.FieldByName('yno').value)=3) then
dbgrid1.canvas.brush.color:=$00FEEADA
else if query1.fieldbyname('yname').value='成品油小计' then
dbgrid1.canvas.brush.color:=$00DFE3FF
else if query1.fieldbyname('yname').value='合计' then
dbgrid1.canvas.brush.color:=$00FEE0FB;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol,Column, State);
end;
if query1.eof<>query1.bof then
begin
if (copy(query1.FieldByName('yname').value,length(query1.FieldByName('yname').value)-3,4)='小计') and (length(query1.FieldByName('yno').value)=7) then
dbgrid1.Canvas.Brush.Color := clinfobk
else if (copy(query1.FieldByName('yname').value,length(query1.FieldByName('yname').value)-3,4)='小计') and (length(query1.FieldByName('yno').value)=4) then
dbgrid1.canvas.brush.color:=$00FEFED1
else if (copy(query1.fieldbyname('yname').value,length(query1.FieldByName('yname').value)-3,4)='小计') and (length(query1.FieldByName('yno').value)=5) then
dbgrid1.canvas.brush.color:=$00DEFCD6
else if (copy(query1.fieldbyname('yname').value,length(query1.FieldByName('yname').value)-3,4)='小计') and (length(query1.FieldByName('yno').value)=3) then
dbgrid1.canvas.brush.color:=$00FEEADA
else if query1.fieldbyname('yname').value='成品油小计' then
dbgrid1.canvas.brush.color:=$00DFE3FF
else if query1.fieldbyname('yname').value='合计' then
dbgrid1.canvas.brush.color:=$00FEE0FB;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol,Column, State);
end;
解决方案 »
- fsMDIForm 和 fsMDIchild 如何使用
- Delphi中DBGridEh合并行
- 字符串中的chr(0)如何显示
- 麻烦哪位帮我解决一下这问题??
- delphi能编写B/S的系统吗?
- 100分求解答:怎么在局域网里自动软件升级,就像internet上的金山毒霸升级一样.
- 请问第三方控件的HELP如何才能与D7集成???
- 求助 确定名字的多个同名进程 枚举的代码
- help!!!高分求一本delphi书籍!!!!!!!!!!!!!!!
- Delphi6中,我在Delphi5中用的很好的Ehlib在6中不能编译下去,总是提示源代码有错……
- 什么函数可以去掉一个string尾部得空格??
- 怎样在Delphi中将日期型参数传入这个存储过程中?
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
begin
if 分数<60 then
begin
dbgrid1.Canvas.Brush.Color := clred;
dbgrid1.DefaultDrawDataCell(rect,field,state);
end;
end;
再给你一个贴子:http://www.csdn.net/expert/topic/799/799818.xml?temp=.1489679
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
with (Sender as TDBGrid) do
begin
if ((State = [gdSelected]) or (State = [gdSelected, gdFocused])) then //这里就是选定时的颜色
begin
Canvas.Font.Color := clHighlightText;
Canvas.Brush.Color := clHighlight;
end
else
begin
if DataSource.DataSet.RecNo mod 2 <> 0 then
Canvas.brush.Color := $00F2F2F2
else
Canvas.brush.Color := clWhite;
end;
DefaultDrawColumnCell(Rect, DataCol, Column, State); //这行是关键
end;
end;