Bueno poderse si se puede, claro que es un tanto complicado, yo te doy algunas ideas y tu lo empiezas ok.
Fíjatte que cada celda del StringGrid tiene una propiedad llamada Objects con la que puedes apuntar a tu botón.
Esto sería:
Código Delphi
[-]
Stringrid1.Objects[Col,Fil]:=MyBoton
Esto es necesario por si quieres asignar un boton diferente por cada columna.
Otra cosa interesante es CellRect que retorna el rectángulo representado por la celda:
Código Delphi
[-]
var
R : TRect;
begin
R := StringGrid1.CellRect(Col,Fil);
MyBoton.Left := R.Right-MyBoton.Width;
MyBoton.Top := R.Top+2;
MyBoton.Visible :=true;
end;
Ahora el caso está en cuando mostrar y cuando ocultar el boton, para esto te recomiendo que uses los eventos OnGetEditText, OnTopLeftChanged y OnSelectCell.
Bueno con estas ideas, puedes ir trabajando, si tienes otras dudas, puedes publicarlas y ya veremos como te ayudamos.
Saludos
