下面的代码是可行的,我的目的可以达到。
问题是:
在 DBGrid1 单击右键,点Columns Editor... 项,按 Add All Fields 按钮后执行
工程,发现onDrawDataCell 事件没有执行,我该怎么办?
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
var
s:string;
x,l2, l1,l,i:integer;
begin
dbgrid1.Canvas.FillRect(rect);
dbgrid1.Canvas.Font.Color :=clred;
s:=field.Text ;
l:=length(s);
if l=0 then exit;
l1:=rect.Right -rect.Left ;
l2:=l1 div l;
x:=0;
for i:=0 to l-1 do
begin
x:=l2*i;
dbgrid1.Canvas.TextOut(rect.left+x,rect.top,s[i+1]);
end;
end;