我有个按钮事件对ADOQUERY下的一条记录做了修改,怎样才能使我dbgrid下对应的这条记录改变颜色呢?
解决方案 »
- 请教各位如何转分?
- 不解 TMethod
- delphi ole excel 删除 损坏
- 关于getmem的赋值问题
- 回答问题送国际域名一个,加300分,ActiveForm超高手请进,绝世难题。回答正确后直接找QQ:82865领奖
- ADOQuery得问题!!!!!!!
- 关于ADO+Access的一个小问题
- 求救:delphi中如何获取一个界面中所有TDBEdit控件的name?
- 我买了正版的程序员大本营请问到那里可以成为会员
- DELPHI6对中文支持不好,怎么办?
- 我想做一个根据给定的坐标来画曲线,应该怎么做?
- 请问用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;