Creo que esta pregunta ya la había visto! XD
Para tal fin... podes crear un cursor temporal de lectura escritura en el INIT del form y enlazarlo al cursor. Si son 3 botones... imagino que el grid tendría 3 columnas, 1 para cada botón.
En el init() del form, coloca algo así:
CREATE CURSOR temp1(boton1 C(10), boton2 C(10), boton3 C(10))
THISFORM.Grid1.RecordSource = "temp1"
THISFORM.Grid1.Column1.ControlSource = "temp1.boton1"
THISFORM.Grid1.Column2.ControlSource = "temp1.boton2"
THISFORM.Grid1.Column3.ControlSource = "temp1.boton3"
Luego... en el evento click de cada boton... coloca un codigo como este.
LOCAL lcValorboton
lcValorboton = "valor a mostrar cargado aqui"
SELECT temp1
INSERT INTO temp1(boton1) VALUES(lcValorboton)
THISFORM. Refresh
Y en cada botón... solo cambia el nombre del campo asignado en el cursor boton1, boton2, boton3.
Avisame cualquier cosa.