Hallo,
ich zeichne mit folgendem Code ein Image in die Zeilen eines DBGrids.
Delphi-Quellcode:
fixRect := Rect;
if Column.Field = dbgrid1.Fields[0] then
begin
bitmap := TBitmap.Create;
try
ImageList5.GetBitmap(imgIndex,bitmap);
bmpWidth := (Rect.Bottom - Rect.Top);
fixRect.Right := Rect.Left + bmpWidth;
DBGrid1.Canvas.StretchDraw(fixRect,bitmap);
finally
bitmap.Free;
end;
fixRect := Rect;
fixRect.Left := fixRect.Left + bmpWidth;
DBGrid1.DefaultDrawColumnCell(fixRect,
DataCol,
Column,
State);
end;
Funktioniert auch alles bestens, allerdings würde ich gerne DrawingStyle:=gdsGradient setzen. Sobald ich diese Eigenschaft setze, wird der Text nicht mehr richtig dargestellt. Sobald die entsprechende Zeile ausgewählt wird, wird sowohl der verschobene Text, als der der Ursprungstext angezeigt, was natürlich zu einer unschönen Überlappung führt. Wird DrawingStyle:=gdsClassic ausgewählt, funktioniert alles problemlos. Im Notfall würde ich auf die Classic-Variante zurückgreifen, aber
imho macht die Gradient-Variante doch mehr her.
Vielen Dank für Eure Hilfe,
Jackandthejuice