Access db 데이터베이스의 테이블에 ADO를 통해 dbgrid 바인딩 된 Delphi 2010을 사용하고 있습니다.델파이 OnDrawColumnCell 사용하기 조건부 포맷을 적용하기 전에 레코드 값을 확인하는 방법은 무엇입니까?
이 테이블은 라디오 그룹 상자의 클릭을 기준으로 필터링됩니다.
코드 색상 코드를 테이블의 데이터를 기반으로 행을 다음 있지만, 필터가 널 데이터 집합을 반환하는 경우 "" 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) <> ''
과 같은 조건부도 시도했지만이 역시 작동하지 않습니다.
귀하의 코드 샘플이 있어야한다 ** StrToIntDef **하지 ** StrToInt **. 3 자이기 때문에 직접 편집 할 수 없습니다. – stukelly
@stukefly : 오, 감사합니다 !!! –