在向该表中加入记录的同时对值进行分析,如果满足一定的条件,则该条记录的颜色就会发生相应的变化。试过很多属性,只能把表格中所有记录的颜色改变,请各位大侠指教,尽可能给的答案详细些,谢谢了!!!
解决方案 »
- DELPHI+mysql
- 关于edit的一个问题
- 请问如何通过程序检测机器是否安装了sqlserver?
- 请教:怎样在Access2000数据库中建表呢,那那些类和方法呢?最好有例子!多谢!:)
- 什么是DLL,具体有何作用
- 如何格式化硬盘分区?*_*
- 怎样做一个类似TDBNavigator的控件?救火啊!!至少50分!
- 一个点对点拨号问题清高手们帮帮忙!!!
- 谁有繁体版delphi6.0或delphi7.0?
- 请教啊,重新问一下:当使用copyrect向timage.canvas拷贝一个较小的图片时,canvas整个都会刷新,如何能够仅仅刷新一部分呢?
- [请教]为什么delphi6.0中加入kodak的缩略图控制控件后,把控件放到窗体上出错呢?
- 请问DB控件如DBMemo怎样才能修改?
procedure TfrmEhlib.dgStoreDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if Odd(aqStore.RecNo + 1) then {隔行变色}
begin
dgStore.Canvas.Brush.Color := clCream;
dgStore.Canvas.Font.Color := clNavy;
end;
if aqStore.FieldByName('scount').asinteger > 80 then {附合条件行变色}
dgStore.Canvas.brush.Color := clLime;
if Column.FieldName = 'onshow' then {附合条件单元格变色}
if Column.Field.AsBoolean = true then
dgStore.Canvas.brush.Color := $00FFBB95;
if State = [gdSelected, gdFocused] then {当前所选单元格变色}
begin
dgStore.Canvas.Brush.Color := clSkyBlue;
dgStore.Canvas.Font.Color := clBlack;
end; dgStore.DefaultDrawColumnCell(Rect, DataCol, Column, State); {生效}
end;
dgStore: TDBGrid;
dgStore.DataSource.DataSet 为 aqStore
Rect: TRect; State: TGridDrawState);
begin
if ARow>0 then begin
if ARow mod 2 = 0 then
StringGrid1.Canvas.Brush.Color := $00DBDBDB
else
StringGrid1.Canvas.Brush.Color := clWhite;
StringGrid1.Canvas.TextRect(Rect,Rect.Left,Rect.Top,'');
end;
end;
(注:此為隔行变色、供参考)
to:ailibuli 按照给的方法试了,是隔行变色,不过每行的记录都显示不了,如何把底色和字体的颜色分开呢
请大虾不吝赐教
stringgrid.canvas.brush.color:='颜色'
else
stringgrid.canvas.brush.color:='颜色'
但是字体要么是看不见,要么出来了颜色没有变,不知到底该怎么办
ARow: Integer; Rect: TRect; State: TGridDrawState);
var
tempStr :string;
StrHeight :integer;
s:string;
r:TRect;
begin
tempStr:=trim(StrGridMain.Cells[ACol,ARow]);
if (ACol=1) and (tempStr<>'')then
begin
with StrGridMain.Canvas do
begin
StrHeight:=TextHeight(tempStr);
Brush.Color:=RGB(100,128,192);
FillRect(Rect);
Pen.Color:=RGB(192,192,192);
Pen.Width:=1;
Rectangle(Rect);
Font.Color:=RGB(0,0,200);
Font.Style:=[fsBold,fsUnderline]; //字体加粗,加下划线
TextOut(Rect.Left+2,Rect.Top+(Rect.Bottom-Rect.Top-StrHeight) div 2,tempStr);
TextOut(Rect.Left+2,Rect.Top+(Rect.Bottom-Rect.Top-StrHeight) div 2,tempStr);
end;
end;
//--单元格居中
with StrGridMain do
begin
Canvas.FillRect(Rect);
s:=Cells[ACol,ARow];
r:=Rect;
DrawText(Canvas.Handle,PChar(s),Length(s),r,DT_CENTER or DT_SINGLELINE or DT_VCENTER);
end;end;
Rect: TRect; State: TGridDrawState);
begin
if ARow>0 then begin
if ARow mod 2 = 0 then
StringGrid1.Canvas.Brush.Color := $00DBDBDB
else
StringGrid1.Canvas.Brush.Color := clWhite;
StringGrid1.Canvas.TextRect(Rect,Rect.Left,Rect.Top,stringgrid1.cell[acol,arow]);
end;
end;