请求高手相助,关于GRID中设置某单元格颜色的问题。(200分)

1

11111

Unregistered / Unconfirmed
GUEST, unregistred user!
请求高手相助,关于GRID中设置某单元格颜色的问题。
1、有两张表,目的是将表2中,安装标识为"1"的记录,在表2中名称相同的单元格设为蓝色。
2、附件中有做的一个框架,各位朋友可以参考一下。
现有的错误。
1、程序会将整行的记录都设为蓝色
2、用SHOWMESSAGE()显示信息是正确的。但在表2中查询,老是有重复值。
本来做好一个附件请大家看,但上传不了。请愿意帮我的朋友留下MAIL。我传过去。

补充:以下是自己写的代码,执行时报上面的错误。
var
i,y:integer;
begin
for i:=1 to adoquery1.RecordCount do
begin
for y:=1 to adoquery1.FieldCount-1 do
begin
if adoquery2.Locate('英文名称',adoquery1.Fields[y].AsString,[]) then
begin
dbgrid5.canvas.Brush.color:=clblue; //改变底色
dbgrid5.canvas.Font.color:=clred; //改变字体颜色
end;
end;
//处理下一行的记录
adoquery1.Next;
end;

dbgrid5.DefaultDrawColumnCell(Rect, DataCol,Column, State);

end;
 
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if (ACol = 3) and (ARow = 3) then
begin
TStringGrid(Sender).Canvas.Brush.Color := clyellow;
TStringGrid(Sender).Canvas.Pen.Color := clYellow;
TStringGrid(Sender).Canvas.FillRect(Rect);
end;
end;
 
顶起来,希望高人出手,指教一下。
 
有朋友愿意帮忙吗?老板催的太紧了。
 
我有一点StringGrid设置背景颜色,你看是否对你有帮助
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
s: String;
R: TRect;
begin
if ARow = 4 then
begin
case ACol of
1: TStringGrid(Sender).Canvas.Brush.Color := clGreen;
2: TStringGrid(Sender).Canvas.Brush.Color := clRed;
3: TStringGrid(Sender).Canvas.Brush.Color := clYellow;
4: TStringGrid(Sender).Canvas.Brush.Color := clBlue;
end;
S := TStringGrid(Sender).Cells[ACol, ARow];
R := TStringGrid(Sender).CellRect(ACol, ARow);
TStringGrid(Sender).Canvas.FillRect(R);
TStringGrid(Sender).Canvas.TextOut(R.Left, R.Top, S);
end;
end;
 

Similar threads

S
回复
0
查看
955
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
777
SUNSTONE的Delphi笔记
S
S
回复
0
查看
933
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
顶部