By default, the grid will try to load content for each table as a string. When the field is a blob stream, the content will be loaded and displayed. Images for example can then be displayed. For other types of data such as the ones you are using, there is no implementation. The best thing to do in that case is to override the OnGetCellData and return an empty string, or a default text.
The issue still remains that when the blob field is not an image, it will try to load and represent it as a string. I noticed the first blob field is a PDF. When loading PDF content in the text cell, it will detected as HTML and therefore try to render it as HTML. In HTML there are a loops trying to determine the end of a tag. This is where the code loops indefinitely. There are a couple of workarounds:
Implement the OnGetText event on the field and override the text.
Use the OnGetCellProperties and turn off HTML parsing for that specific column
procedure TForm1.TMSFNCGrid1GetCellProperties(Sender: TObject; ACol,
ARow: Integer; Cell: TTMSFNCGridCell);
begin
if ACol = 1 then
Cell.DisplayHTMLFormatting := True;
end;
Thank you Pieter for your fast and valuable feedback. Your solution fixes this current issue but I think it is only a workaround. I don't want to be offensive but I'm convinced that it is a bad idea to let the grid decide to display text, image or render HTML:
It's not really optimal for dynamically retrieved data (blod fields or some strings don't always have the same positions)
nor for grid design with static fields from the IDE (look at my example, it is necessary to kill the IDE)
finally, it doesn't match/mimic behavior of other grids
I would suggest you to modify this behavior and maybe introduce a type of rendering per field/cell. The default would of course be raw text.
Unfortunately we cannot change the default behavior right now because of backwards compatibility. If we change to not support HTML other cells with HTML text will not be rendered correctly and support will be flooded. However, I completely understand the issue that blob-fields are not supposed to be rendered as HTML text and we'll search for a proper built-in solution without breaking the backwards compatibility.