好象可以,你去试一下: 首先用query或adoquery控件来连接dbgrid, 然后双击query控件,右击,选择add all fields,选择定义为memo类型的字段,选择该字段的ongettext事件,在事件里写入以下程序: text:=trim(Sender.asstring); displaytext:=true; 记不大清楚以上两句那句在前那句再后了!
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var Code: Integer; Bmp: TBitmap; begin // erase existing output DBGrid1.Canvas.FillRect (Rect); if Column.Field.DataType = ftGraphic then begin // draw the image Bmp := TBitmap.Create; try Bmp.Assign (Table1Graphic); DBGrid1.Canvas.StretchDraw (Rect, Bmp); finally Bmp.Free; end; end else begin // choose the font color if (Column.Field = Table1Lengthcm) and (Table1Lengthcm.AsInteger > 100) then DBGrid1.Canvas.Font.Color := clRed else if gdSelected in State then DBGrid1.Canvas.Font.Color := clHighlightText else DBGrid1.Canvas.Font.Color := Column.Font.Color; // draw the standard text DBGrid1.Canvas.TextRect ( Rect, Rect.Left, Rect.Top, Column.Field.AsString); end; // optionally draw the focus rectangle if gdFocused in State then DBGrid1.Canvas.DrawFocusRect (Rect); end;
再者就是一个新控件
首先用query或adoquery控件来连接dbgrid,
然后双击query控件,右击,选择add all fields,选择定义为memo类型的字段,选择该字段的ongettext事件,在事件里写入以下程序:
text:=trim(Sender.asstring);
displaytext:=true;
记不大清楚以上两句那句在前那句再后了!
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
Code: Integer;
Bmp: TBitmap;
begin
// erase existing output
DBGrid1.Canvas.FillRect (Rect); if Column.Field.DataType = ftGraphic then
begin
// draw the image
Bmp := TBitmap.Create;
try
Bmp.Assign (Table1Graphic);
DBGrid1.Canvas.StretchDraw (Rect, Bmp);
finally
Bmp.Free;
end;
end
else
begin
// choose the font color
if (Column.Field = Table1Lengthcm) and
(Table1Lengthcm.AsInteger > 100) then
DBGrid1.Canvas.Font.Color := clRed
else if gdSelected in State then
DBGrid1.Canvas.Font.Color := clHighlightText
else
DBGrid1.Canvas.Font.Color := Column.Font.Color;
// draw the standard text
DBGrid1.Canvas.TextRect (
Rect, Rect.Left, Rect.Top,
Column.Field.AsString);
end; // optionally draw the focus rectangle
if gdFocused in State then
DBGrid1.Canvas.DrawFocusRect (Rect);
end;
应改为Bmp.Assign (Column.Field);