我有个按钮事件对ADOQUERY下的一条记录做了修改,怎样才能使我dbgrid下对应的这条记录改变颜色呢?
解决方案 »
- delphi处理EXCEL数据,并画出曲线图
- 大侠帮忙!如何制作圆形panel!
- ParamCount,inaccessible value问题
- 奇怪了,sizeof与结构的问题
- 有没有什么好的小型数据库,不用安装的.推荐一下,100分在线等。
- Delphi写的动态连接库返回值为PChar类型,在VB中如何调用(急,在线等待)
- 问一个ICS控件组的问题
- 我想做一个限制用户运行程序数量的东东,请问各位大虾该如何下手??
- 因泡老板秘书被老板炒掉,现在无聊Ing,赚点小钱抽抽烟
- 那里能下载 BoundsChecker for Delphi 这个
- 我想做一个根据给定的坐标来画曲线,应该怎么做?
- 请问用Delphi编写的Dll如果要返回字符串类型,而且要提供给VC使用该怎么办?
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if 是你修改的记录 then
begin
DBGrid1.Canvas.Font.Color:=clRed;
DBGrid1.Canvas.Brush.Color:=RGB(221, 255, 255);
end;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
然后:
if FieldByName('BZ').Assting = 'xx' then //区别是否修改
.... // 同楼上
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (DataCol = 1)and(ADOTable1.FieldByName('UserName').Value = 'Administrator') then
begin
DBGrid1.Canvas.Font.Color := clRed;
DBGrid1.Canvas.Brush.Color := clLime;
end;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;以上代码仅把第一列(从零列开始),第UserName='Administgrator'行的单元格的字体颜色改为红色,背景颜色改为亮绿色
var
vType1, vType2: TVarType;
I: Integer;
vVarLow1, vVarLow2: Integer;
vVarHigh1, vVarHigh2: Integer;
begin
Result := False;
vType1 := VarType(mVar1);
vType2 := VarType(mVar2);
if vType1 <> vType2 then Exit;
if vType1 and varArray <> 0 then begin
vVarLow1 := VarArrayLowBound(mVar1, VarArrayDimCount(mVar1));
vVarLow2 := VarArrayLowBound(mVar2, VarArrayDimCount(mVar2));
if vVarLow1 <> vVarLow2 then Exit;
vVarHigh1 := VarArrayHighBound(mVar1, VarArrayDimCount(mVar1));
vVarHigh2 := VarArrayHighBound(mVar2, VarArrayDimCount(mVar2));
if vVarHigh1 <> vVarHigh2 then Exit;
for I := vVarLow1 to vVarHigh1 do
if not VarIsEqual(mVar1[I], mVar2[I]) then Exit;
Result := True;
end else Result := VarCompareValue(mVar1, mVar2) = vrEqual;
end; { VarIsEqual }procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if Assigned(Column.Field) and
not VarIsEqual(Column.Field.NewValue, Column.Field.OldValue) then begin
TDBGrid(Sender).Canvas.Font.Color := clRed;
TDBGrid(Sender).Canvas.Brush.Color := clLime;
end;
TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;