2,507
社区成员




if Field is TMemoField then //或if Field.DataType=ftMemo then
begin
TDBGrid(Sender).Canvas.FillRect(Rect);
TDBGrid(Sender).Canvas.TextOut(Rect.Left+2, Rect.Top+2, Field.AsString);
end;
在数据集里处理也很好,在数据集的AfterOpen事件中写(定义GetText过程,写一句Text:=Sender.AsString;):
if not DataSet.IsEmpty then
with DataSet.Fields do
for i:=0 to Count-1 do
if Fields[i] is TMemoField then
TMemoField(Fields[i]).OnGetText:=GetText;
with TDBGrid(Sender).Canvas do
begin
if Field.FieldName='xm' then
TextOut(Rect.Left+2, Rect.Top+2, Field.AsString);
if Field.DisplayText='(Memo)' then
TextOut(Rect.Left+2, Rect.Top+2, ' ');
end;