A. Use the following code for the OnDrawDataCell event of the DBGrid. Note: before running create a TMemoField object for the memo field by double clicking on the TTable component and adding the memo field.
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
var
P : array [0..50] of char; {array size is
number of characters needed}
BS : tBlobStream;
{from the memo field}
S : String;
begin
If Field is TMemoField then begin
with (Sender as TDBGrid).Canvas do begin
{Table1Notes is the TMemoField}
BS := tBlobStream.Create(Table1Notes,
bmRead);
FillChar(P,SizeOf(P),#0);
{terminate the null string}
BS.Read(P, 50);
{read 50 chars from memo into blobStream}
BS.Free;
S := StrPas(P);
while Pos(#13, S) > 0 do
{remove carriage returns and}
S[Pos(#13, S)] := ' ';
{line feeds}
While Pos(#10, S) > 0 do
S[Pos(#10, S)] := ' ';
FillRect(Rect);
{clear the cell}
TextOut(Rect.Left, Rect.Top, S);
{fill cell with memo data}
end;
end;
end;