!!!有关于DBGrid显示数据问题求教大仙,捧上100分!!!(100分)

  • 主题发起人 主题发起人 szyinde
  • 开始时间 开始时间
S

szyinde

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在DBGrid中显示数据时通过数据在其中的不同显示颜色来提醒用户.
例如我要在DBGrid一行记录中大于三的数据用红色显身手出来,而小于三的用黑色,
 
再贴一次,呵呵。
procedure TForm1.DBGridDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
{
if Query1.FieldByName('Col1').AsString <> '' then
if (gdSelected in State) and (DBGrid1.Focused = True) then
DBGrid1.Canvas.Font.Color := clWhite
else
DBGrid1.Canvas.Font.Color := clTeal;
}
if query1.FieldByName('Col1').AsString <> '' then
dbgrid1.Canvas.Brush.Color := $00E0FFFF
else
dbgrid1.Canvas.Brush.Color := clWhite;

if ((gdSelected in State) and (gdFocused in State)) then
begin
dbgrid1.Canvas.Brush.Color := clNavy;
dbgrid1.Canvas.Font.Color := clWhite;
end;

dbgrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
 
可惜来迟一步!
 
你可在OnDrawColumnCell事件中判斷並重繪Cell
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if Colum.Field = FieldAAA then //判斷是否為指定字段
begin
if FieldAAA.AsInteger > 3 then //如果該字段的值大於3
DBGrid1.Canvas.Font.Color := clRed //將字型顏色設為紅色
else
DBGrid1.Canvas.Font.Color := clBlack;
DBGrid1.Canvas.TextRect(Rect, Rect.X + 1, Rect.Y + 1, FieldAAAA.Text); //重畫出字段內容
end;
end;
 
lorderic君:
请解释一下您回复的问题好吗.我对变量X,Y有些问题,是否要先定义它们.致谢!!1
 
x,y不用定义,只是用来表示位置,有系统管理
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
909
DelphiTeacher的专栏
D
后退
顶部