2014-02-06 3 views

답변

5
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; 
DataCol: Integer; Column: TColumn; State: TGridDrawState); 
begin 
    if (Column.Field.FieldName = 'Pay') then 
    begin 
    if Column.Field.AsString = 'yes' then 
    begin 
     dbgrid1.Canvas.Font.Color := clBlue; 
     dbgrid1.Canvas.Font.Style :=[fsBold]; 
     dbgrid1.Canvas.FillRect(Rect); 
     dbgrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); 
    end 
    else 
    begin 
     dbgrid1.Canvas.Font.Color:= clRed; 
     dbgrid1.Canvas.FillRect(Rect); 
     dbgrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); 
    end; 
    end; 
end; 
+0

편집의 텍스트 속성을 변경하는 동안 dbgrid를 다시 그리는 방법이 있습니까? 그래서 dbgrid를 다시 그릴 수 있습니까? –

+0

사용 방법을 알려주세요. Tedit의 내용으로 검색하고 dbgrid에서 데이터를 반환합니까? 동적인가? –

+0

정확하게, 그것은 동적입니다. –

1

이 문제를 해결하려면 DBGrid의 속성 DefaultDrawing 값을 False로 설정하십시오.

나는 나를 위해 똑같은 문제가 있었고 해결되었다.