Setear el caption de un botón dentro de la grilla

Asi puedo setear la columna dos con valores
cnombrecursor=thisform.ccursornom
GO TOP IN &cnombrecursor
i=1
DO WHILE !EOF('&cnombrecursor')
    thisform.grid1.Columns(2).text1.value="carlos..." + STR(i)
SKIP IN &cnombrecursor
i=i+1
enddo
perosi a la columna 2 le meto un objeto boton:
cnombrecursor=thisform.ccursornom
GO TOP IN &cnombrecursor
i=1
DO WHILE !EOF('&cnombrecursor')
    thisform.grid1.Columns(2).Command1.Caption="carlos..." + STR(i)SKIP IN &cnombrecursor
i=i+1
enddo
me pone para todos los botones de la columna el mismo valor, me toma por ejempl osi tengo 36 registros  carlos...36 para el caption de todas las columnas
como le asigno un valor distinto a al caption de cada boton de la columna 2 segun el valor que le asigno del cursor, aca le puse un valor fijo "carlos.."+ i pero tomaria datos del cursor que recorro, gracias
1

1 Respuesta

79.975 pts. Ingeniero de Sistemas Computacionales
Así:
1. Añade un grid a un form
2. Prepara tu grid para mostrar los datos de tu tabla o cursor de la forma acostumbrada
3. Añade un botón a la columna que desees y borra el textbox, de esta forma el botón será el control predeterminado.
4. Pon la propieda SPARCE=.F. en la columna
5. En el init del form setea la propiedad DynamicBackColor del grid asi:
thisform.grid1.DynamicBackColor = "ThisForm.SetButtonCaption()"
6. Añade un método al grid llamado SetButtonCaption() y escribe el siguiente código:
     ThisForm.Grid1.ColumnX.command1.Caption = MyTable.MyField
      RETURN ""
ColumnX es el nombre de tu columna y MyTable. MyField es el campo que contiene los caption que deben aparecer en tus botones.
Yo hice la prueba y funciona.
Una pequeña corrección...
En el punto 6 el método debes agregarlo es a tu form no al grid.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas