Делается это так, разными способами. Через Canvas, либо UniImage
procedure TMainForm.UniDBGrid1FieldImage(const Column: TUniDBGridColumn; const AField: TField; var OutImage: TGraphic; var DoNotDispose: Boolean; var ATransparent: TUniTransparentOption);
begin
if SameText(AField.FieldName, 'Name2') then
begin
OutImage := TBitmap.Create;
with (OutImage as TBitmap) do
begin
SetSize(128, 32);
Canvas.Font.Size := 12;
Canvas.Font.Color := clBlue;
Canvas.Font.Style := [fsBold, fsItalic];
Canvas.Brush.Style := bsBDiagonal;
Canvas.Brush.Color := clGreen;
Canvas.Rectangle(1, 1, 127, 31);
Canvas.TextOut(2, 2, AField.DisplayText);
end;
end
else if SameText(AField.FieldName, 'gender') then
begin
DoNotDispose := True; // we provide an static image so do not free it.
if AField.AsString = 'male' then
OutImage := UniImage1.Picture.Graphic
else if AField.AsString = 'female' then
OutImage := UniImage2.Picture.Graphic;
end;
end;
Через Url
procedure TMainForm.UniDBGrid1FieldImageURL(const Column: TUniDBGridColumn; const AField: TField; var OutImageURL: string);
begin
if (Column.Tag = 255) and SameText(AField.FieldName, 'shift') then
begin
if AField.AsBoolean then
OutImageURL := 'files/sun.jpeg'
else
OutImageURL := 'files/moon.jpeg';
end;
end;