So, die Lösung unter Berücksichtigung des 3D-Effekt (fast OK):
Delphi-Quellcode:
procedure TfoTest05.StringGrid1DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var r: TRect;
begin
if aRow=1 then
if acol=2 then // << in Spalte 2 wird der Inhalt von Spalte 1 gezeichnet
with TStringgrid(Sender) do begin
R := Classes.Rect(Rect.Left-ColWidths [ACol-1], // << !!!
Rect.Top -RowHeights[ARow-1], // << !!
Rect.Left-2,
Rect.Bottom-1);
Canvas.Brush.Color := clRed;
Canvas.FillRect(R);
DrawText(Canvas.Handle,
PChar('Hallo ich bin es, der hier was schreibt'),
-1,
R,
DT_CENTER or DT_VCENTER or DT_WORDBREAK);
end;
end;
end;
Jetzt zeichnen wird eine Spalte SPÄTER - nachdem das Grid den 3D-Effekt gemalt hat - unsren Text in die VORHERGEHENDE Spalte! Jetzt sind nur noch winzige Punkte vom 3d-Effekt an den Aussenseiten zu sehen!