Puedes probar de esta manera
Código Delphi
[-]procedure TForm1.dbGrid1EditButtonClick(Sender: TObject);
begin
if dbGrid1.SelectedField = TablaCampoBlob then
CrearFrameBlob('CampoBlob', DataSource);
end;
procedure TForm1.CrearFrameBlob(Campo : string; Source : TDataSource);
const
ancho = 250;
alto = 140;
var
Frm : TForm;
Memo : TDBMemo;
begin
Frm := TForm.Create(nil);
try
Frm.Width := ancho;
Frm.Height := alto;
Frm.Top := Mouse.CursorPos.Y;
Frm.Left := Mouse.CursorPos.X - ancho;
if Frm.Left < self.Left then
Frm.Left := self.Left;
if Frm.Top + alto > self.Height + self.Top then
Frm.Top := self.Height + self.Top - alto;
Frm.BorderStyle := bsToolWindow;
Frm.Caption := campo;
Memo := TDBMemo.Create(nil);
try
Memo.Parent := Frm;
Memo.Align := alClient;
Memo.DataSource := Source;
Memo.DataField := Campo;
Memo.ReadOnly := true;
Memo.ScrollBars := ssVertical;
Frm.ShowModal;
finally
Memo.Free;
end;
finally
Frm.Free;
end;
end;
procedure TForm1.dbGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
R : TRect;
begin
R:=Rect;
Dec(R.Bottom,2);
if Column.Field = TablaCampoBlob then
begin
if not (gdSelected in State) then
dbgVentas.Canvas.FillRect(Rect);
DrawText(dbGrid1.Canvas.Handle, pchar(TablaCampoBlob.AsString),
length(TablaCampoBlob.AsString), R, DT_WORDBREAK);
end;
end;
Espero que te sirva.
Un saúdo.