0
以前使用默認的DBGrid,我可以更改單元格的值,而不必使用以下代碼更改數據庫中的數據。如何修改DrawCell上數據庫字段的文本? TcxGrid
procedure TEMRForm.DBGridCDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if Column.FieldName = 'START_DATE' then
begin
DBGridC.Canvas.FillRect(Rect);
DBGridC.Canvas.TextOut(Rect.Left+2,Rect.Top+2,Column.Field.Text + ' *');
end;
end;
這很好,但我在cxgrid上實現同樣的功能時遇到了問題。這是我當前的代碼,它顯示沒有指示單元格值被更改。
procedure TEMRForm.cxGridCDBTableView1CustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
ARect: Trect;
begin
ARect := AViewInfo.Bounds;
if AViewInfo.Item.Caption = 'Start Date' then
begin
ACanvas.FillRect(ARect);
ACanvas.TextOut(ARect.Left+2,ARect.Top+2,TableC.FieldByName('START_DATE').AsString+' *');
end;
end;
謝謝你的工作,但關於使用列事件的好處。你是否預見到在drawcell事件上做任何問題? – Trevor
我認爲列事件是更有前途的證據,但在簡單情況下,drawcell應該也可以。 – ain
好的,謝謝。 – Trevor