我正在使用带有通过 ADO 绑定到 Access mdb 数据库中的表的 dbgrid 的 Delphi 2010。
此表是根据单选框中的点击进行过滤的。
以下代码根据表中的数据对行进行颜色编码,但失败并显示错误对话框
"" is not a valid integer value
如果过滤器返回一个空数据集。我以为如果没有返回记录但它似乎不起作用,我已经允许不调用颜色设置;见下面的代码
procedure TMainForm.DBGridAbsenceDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
//Need to add code to detect if record exists
with DBGridAbsence.Canvas do
begin
RecordCountLabel.Caption.Text := 'Absence Records: ' + IntToStr(ADOTblAbsence.RecordCount);
font.color:=clBlack;
brush.color:=clMoneyGreen;
If ( ADOTblAbsence.State <> dsInsert ) and ( ADOTblAbsence.RecordCount > 0 ) then
begin
Font.Color := StringToColor(ADOTblAbsenceForeground.AsString);
Brush.Color:= StringToColor(ADOTblAbsenceBackground.asstring);
end;
DBGridAbsence.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
任何和所有的帮助都非常感激。注意我也尝试过条件,例如
if Trim(ADOTblAbsenceForeground.AsString) <> ''
但这似乎也不起作用。