Hallo Jannik.
Der folgende Code zeigt dir im Prinzip, wie du in einer Zelle verschiedene Styles verwenden kannst. Da du keine Kriterien angegeben hast, habe ich im Beispiel einfach den Zellentext in Wörter zerlegt und schreibe dann Wörter fett, wenn sie mehr als fünf Zeichen lang sind.
Delphi-Quellcode:
function LeadingBlanks(s: String; index: Integer): Integer;
begin
Result := 0;
while (index + Result < Length(s)) and (s[index + Result] = ' ') do
Inc(Result);
end;
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
s, sPart: String;
iLeft, iStart, iLength: Integer;
begin
s := Column.Field.AsString;
with (Sender as TDBGrid).Canvas do
begin
iLeft := Rect.Left + 2;
iStart := 1;
while iStart <= Length(s) do
begin
if s[iStart] = ' '
then iLength := LeadingBlanks(s, iStart)
else iLength := PosEx(' ', s, iStart) - iStart;
if iLength < 0 then
iLength := Succ(Length(s) - iStart);
if iLength > 5
then Font.Style := Font.Style + [fsBold]
else Font.Style := Font.Style - [fsBold];
sPart := Copy(s, iStart, iLength);
TextOut(iLeft, Rect.Top + 2, sPart);
iLeft := iLeft + TextWidth(sPart);
iStart := iStart + iLength;
end;
end;
end;
Grüße vom marabu