DefaultDrawing:= False; // in den Eigenschaften des DBGrid
dann unter OnColumnDrawCell eine eigen Zeichenroutine schreiben.
Delphi-Quellcode:
procedure TForm1.OnDrawColumnCell(Sender: TDBGrid; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState; MyTable: TADOTable);
var
MyText : string;
bmpImage : TBitmap;
begin
if State = [gdSelected..gdFocused] then
begin
bmpImage := TBitmap.create;
ToolbarImages.GetBitmap(15,bmpImage);
Sender.Canvas.Font.Style:= [fsBold];
Sender.Canvas.FillRect(Rect);
MyText:= ' '+ DataSource11.DataSet['Name']+ ', ' + DataSource11.DataSet['Vorname'];
Sender.Canvas.TextRect(Rect,Rect.Left+16,Rect.Top+2,MyText);
Sender.Canvas.DrawFocusRect(Rect);
Sender.Canvas.Draw(1,1+Rect.Top,bmpImage);
bgLabel.Color:= Sender.Canvas.Brush.Color;
bmpImage.Free;
end
else begin
Sender.Canvas.Font.Style:= [];
Sender.Canvas.FillRect(Rect);
MyText:= ' '+ DataSource11.DataSet['Name']+ ', ' + DataSource11.DataSet['Vorname'];
Sender.Canvas.TextRect(Rect,Rect.Left,Rect.Top,MyText);
bgLabel.Color:= Sender.Canvas.Brush.Color;
end;
end;
Dein Pfeil verschwindet sonst immer weil er einfach nochmals überzeichnet wird.
mfg, silence