请教个StringGird表格文字颜色的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 徐辰仲
  • 开始时间 开始时间

徐辰仲

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位大大如何才能在写入StringGird表格数据时,每一行的颜色分开?

if (Strtoint(Rzspinedit3.Text)*100*(StrToCurr(Rzspinedit2.Text)-StrToCurr(Rzspinedit1.Text))-StrToCurr(Rzspinedit1.Text)*cha>0) and (ARow>=i-1)and(ACol>3)then
begin
RzStringGrid1.Canvas.font.color:=Clred;
RzStringGrid1.Canvas.Textrect(rect,rect.left,rect.top,RzStringGrid1.cells[4,i]);
RzStringGrid1.OnDrawCell:=nil;//设置为nil,下面就不会无限递归
try
TMyGrid(rzStringGrid1).DrawCell(ACol,ARow,Rect,State);
finally
rzStringGrid1.OnDrawCell:=rzStringGrid1DrawCell; //恢复事件的地址
end;
end;

if (Strtoint(Rzspinedit3.Text)*100*(StrToCurr(Rzspinedit2.Text)-StrToCurr(Rzspinedit1.Text))-StrToCurr(Rzspinedit1.Text)*cha<0) and (ARow>=i-1)and(ACol>3)then
begin
RzStringGrid1.Canvas.font.color:=Clgreen;
RzStringGrid1.Canvas.Textrect(rect,rect.left,rect.top,RzStringGrid1.cells[4,i]);
RzStringGrid1.OnDrawCell:=nil;//设置为nil,下面就不会无限递归
try
TMyGrid(rzStringGrid1).DrawCell(ACol,ARow,Rect,State);
finally
rzStringGrid1.OnDrawCell:=rzStringGrid1DrawCell; //恢复事件的地址
end;
end;
这是我的部分代码,但是每次写入数据后上一次的文字颜色就会被刷除,请问应该如何才能锁定每一行的文字颜色,麻烦各位大大了
 
sg.Canvas.Brush.Color:=clwhite;
sg.Canvas.FillRect(rect);
if ARow mod 2=0 then
sg.Canvas.Font.Color:=clred
else
sg.Canvas.Font.Color:=clMoneyGreen;
sg.Canvas.TextOut(rect.Left,rect.Top,sg.Cells[acol,arow]);
 
同意楼上
 
siking,不好意思还是不明白,我在使用时现在是一格有选择的颜色一格颜色不变(黑的),还有ARow mod 2=0 不太理解什么意思,麻烦你了
 
ARow mod 2 = 0
是用来交叉行的
奇数和偶数行
 
不好意思,我不需要是用来交叉行刷新的,我所需要的是刷好第一行,刷第二行时第一行不变,刷好第二行时,刷第三行时第二第一行不变,能行吗?谢谢各位老大了
 
麻烦各位大大帮忙解答下了,谢谢[:)]
 
用StringGrid.Objects[ACol, ARow]来保存每一格的颜色
 
谢谢各位解答
 
后退
顶部