我想判断在stringgrid 的值,如果有两个值相同,则这两个单元格的颜色都变成黄色
我的代码如下所写
aa:=stringgrid1.CellRect(c,a );
bb:=stringgrid1.CellRect(c,a );
StringGrid1.Canvas.Brush.Color := clyellow;
StringGrid1.Canvas.Font.Color:=clblue;
StringGrid1.Canvas.FillRect(aa);
StringGrid1.Canvas.FillRect( bb);
它的颜色是一闪而过。并没有保存下来。请问高手这如何解决
我的代码如下所写
aa:=stringgrid1.CellRect(c,a );
bb:=stringgrid1.CellRect(c,a );
StringGrid1.Canvas.Brush.Color := clyellow;
StringGrid1.Canvas.Font.Color:=clblue;
StringGrid1.Canvas.FillRect(aa);
StringGrid1.Canvas.FillRect( bb);
它的颜色是一闪而过。并没有保存下来。请问高手这如何解决
Rect: TRect; State: TGridDrawState);
var ARect:TRect;
begin
with stringgrid1.Canvas do
begin
Font.Name:='宋体';
Font.Size:=9;
ARect:=Rect;
if(ARow=0)and((ACol=7)or(ACol=8))then
begin
ARect:=Rect;
ARect.Right:=Rect.Right+2;
end;
if ((ARow >=1))and((ARow mod 2)=0) then
Brush.Color:=RGB(231,247,242)
else
if ARow >=1 then
Brush.Color:=RGB(183,235,219); fillRect(ARect); end;
with stringgrid1 do
canvas.TextOut(Rect.Left+2,Rect.top+2,stringgrid1.Cells[Acol,ARow]);
end;
bb:=stringgrid1.CellRect(A,C );//stringgrid1???
StringGrid1.Canvas.FillRect(aa);
StringGrid1.Canvas.FillRect( bb);//Stringgrid1???看不懂
我是动态到数据库调用数据的,每个数据都要检查的,是一个一个单元格改变颜色的
请问StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);这个事件是什么时候就执行的,是什么来触发的。能否说的明白一点啊
把你向STRINGGRID填写TEXT 的代码看一下,
是不是,比如,cell[0,1]=cell[2,3]则他们颜色一样,
cell[5,1]=cell[6,3]则他们颜色一样但也不同于cell[0,1]?
for jj:=1 to 20 do
for kk:=1 to 10 do
begin
if not adoquery2.Eof then
begin
cc:=stringgrid1.CellRect(jj,kk);
stringgrid1.Cells[kk,jj]:=adoquery2.fieldbyname'f_ticketcode').AsString;
if adoquery2.fieldbyname('bz').asinteger=1//表示这个值是重复的,这个单元格的颜色是红色。
即
StringGrid1.Canvas.Brush.Color := clred;
StringGrid1.Canvas.FillRect( cc);
可是红色是一闪而过的,并没有保存下来