Я сделал очень грубый пример для вас, который работает, и вы можете взять его, чтобы попытаться улучшить его по мере необходимости.
Перетащите элемент управления TDBRichEdit на форму и установите для его свойства Visible значение False. Задайте свойства DataSource и DataField, чтобы выбрать соответствующее поле.
Скажите, что имя поля, содержащее текст RTF, называется "RTF":
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
DrawState: Integer;
DrawRect: TRect;
begin
if (gdFocused in State) then
begin
if (Column.Field.FieldName = 'RTF') then
with DBRichEdit1 do
begin
Left := Rect.Left + DBGrid1.Left + 1;
Top := Rect.Top + DBGrid1.Top + 1;
Visible := True;
end;
end;
end;
procedure TForm1.DBGrid1ColExit(Sender: TObject);
begin
if DBGrid1.SelectedField.FieldName = 'RTF' then
DBRichEdit1.Visible := False;
end;
Это покажет полный, отформатированный richedit текст во всплывающем окне при нажатии на столбец в сетке. Когда вы щелкаете мышью, всплывающее окно скрывается.