a Simple Solution:
i assume Field's value is 'book,pencil' .
for colorize first word:
book,pencil
Code:
procedure TfrmViewQList.DBGridEh1AdvDrawDataCell(Sender: TCustomDBGridEh; Cell,
AreaCell: TGridCoord; Column: TColumnEh; const ARect: TRect;
var Params: TColCellParamsEh; var Processed: Boolean);
var
DrawTextRect: TRect;
S,s1: String;
H: Integer;
BrushStyle: TBrushStyle;
clr: TColorRef;
begin
if Column.FieldName='rnames' then begin
Sender.DefaultDrawColumnDataCell(Cell, AreaCell, Column, ARect, Params);
Processed := True;
Sender.Canvas.Font := Sender.FieldColumns['rnames'].Font;
if gdFocused in Params.State then
Sender.Canvas.Font.Color := clHighlightText;
DrawTextRect := ARect;
S := Sender.FieldColumns['rnames'].DisplayText;
s1:=copy(s,1,pos(',',s)-1);
H := Sender.Canvas.TextHeight(S);
if DrawTextRect.Top + H < DrawTextRect.Bottom then
begin
BrushStyle := Sender.Canvas.Brush.Style;
Sender.Canvas.Brush.Style := BrushStyle;
clr:=Sender.Canvas.Font.Color;
Sender.Canvas.Font.Color:=clRed;
Sender.Canvas.TextRect(DrawTextRect, DrawTextRect.Left, DrawTextRect.Top, s1);
Sender.Canvas.Font.Color:=clR;
Inc(DrawTextRect.Left, sender.Canvas.TextWidth(s1));
Sender.Canvas.TextRect(DrawTextRect, DrawTextRect.Left,
DrawTextRect.Top, Copy(S,Length(s1)+1,Length(s)-Length(s1)));
Sender.Canvas.Brush.Style := BrushStyle;
end;
end;
end;