Tur*_*254 5 delphi ado dbgrid tdbgrid tadoquery
我有DBGrid
哪些存储客户信息和会员资格的到期日期。我对包含即将到期(青色)或已过期(红色)的会员资格的行着色的OnDrawColumnCell
事件使用以下代码DBGrid
:
procedure TfrmMain.grdMainDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (ADOMember.FieldByName('expirydate').AsDateTime >= (now)) and (ADOMember.FieldByName('expirydate').AsDateTime <= (now+7)) then
begin
grdMain.Canvas.Brush.Color := clTeal;
grdMain.Canvas.Font.Color := clWhite;
grdMain.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
if (ADOMember.FieldByName('expirydate').AsDateTime < (now)) and (ADOMember.FieldByName('expirydate').AsString <> '') then
begin
grdMain.Canvas.Brush.Color := clRed;
grdMain.Canvas.Font.Color := clWhite;
grdMain.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
Run Code Online (Sandbox Code Playgroud)
我的表单上还有一个按钮可以重置 DBGrid。这允许用户在搜索完成后显示完整的客户端列表(返回少量客户端)。
按下重置按钮时出现我的问题。当ResetMemberGrid
显示完整列表时,该按钮会正确执行以下 SQL 函数(在称为 的过程中)。
SELECT * FROM 客户
但是,DBGrid 不再着色。所有行保持白色。我无法调用该grdMainDrawColumnCell
过程,因为它需要我不知道的参数。有没有办法调用 DrawColumnCell 过程?我曾尝试重新绘制、使 DBGrid 失效和刷新,但没有成功。谢谢。
归档时间: |
|
查看次数: |
3915 次 |
最近记录: |