Hallo,
Fixed kann man nur in den ersten Spalten bzw. Zeilen setzen, also da bleibt Dir nichts anderes übrig als selber zu zeichnen in OnDrawCell.
Der folgende Code zeichnet einen 3D-Effekt über zwei Zellen in Spalte 2 + 3 in der 2-ten Zeile:
Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var aRect : TRect;
begin
if (ACol in [2,3]) and (ARow = 2) then
begin
aRect := Rect;
if ACol = 2 then
aRect.Right := aRect.Right + StringGrid1.ColWidths[3]
else
aRect.Left := aRect.Left - StringGrid1.ColWidths[2];
DrawFrameControl(StringGrid1.Canvas.Handle,aRect,DFC_BUTTON,DFCS_BUTTONPUSH);
end;
end;