当前位置:主页>销售管理软件> 列表

这样的判断怎么在DrawColumnCell事件里面写?

仓库管理软件版1楼: 如果我想判断如果Grid的第三栏的值是 ''某某'' 那么第二栏的值颜色Font就变成红色
如果不是就是黑色
这个怎么写??

2楼: 第三栏?是第三列,还是某个cell啊? 如sql进销存管理系统

3楼: 就是第三列。一行一行的判断,如果这一行第三列的值是 ‘某某’那么这一行第二列的值颜色为红色

4楼: if ADOQuery1.FieldByName(DBGrid1.Columns[2].FieldName).asstring = ''某某'' then
begin
DBGrid1.Columns[1].Color := clwhite;
DBGrid1.Columns[1].font.Color := clred;
end;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);

5楼: 这样吧,不用考虑哪个query连接到该dbgrid,不用考虑是否dbgrid已经指定字段

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if column.Index=1 then
begin
if DBGrid1.DataSource.DataSet.FieldValues[DBGrid1.Columns[2].FieldName]=''001050'' then
begin
DBGrid1.Canvas.Font.Color:=clred;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
end;

6楼: procedure TFrm_MyStck.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if DM.Q_Show.FieldByName(''库存'').AsInteger<0 then
begin
DBGrid1.Canvas.Brush.Color:=clMoneyGreen;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,[gdFixed,gdFocused,gdSelected]);
end;
end;
我的是DM.Q_Show联接DBGrid1的ADOSDataSet,
SQL为:SelectStr:='' select P.MID as 编码,P.MName as 名称, P.MUnit as 单位,S.Quantity as 库存,''
当哪行库存<0时这一行变绿色.

仓库管理软件版7楼: 都不对啊。我想要的是这样:一行一行的判断,如果这一行第三列的值是‘某某’,那么这一行第二列的值的Font为红色。每一行和每一行是不一样的。不是整个列颜色都变 !

8楼: 就是符合条件的那行那列的cell变啊,我刚试完,没问题

我的代码你试了没