Cambiar el color de una fila de un Grid en el momento del click sobre un chekbox

108 views
Skip to first unread message

Esteban Micossi

unread,
Oct 2, 2021, 7:30:07 PM10/2/21
to Comunidad de Visual Foxpro en Español
Hola grupo

Tengo un grid en donde en una de la columnas incorpore un CheckBox
y cuando hago click en ese checkbox, debe cambiar el color de la fila del
Grid. Lo trabajo con el dynamicbackcolor, funciona bien pero el problema es que unicamente cambia el color  cuando pierde el enfoque de esa fila, es decir cuando
me muevo  a otra fila y no inmediatamente de hacer el click sobre el chekbox.
Bueno gente, gracias de antemano y les dejo cordiales saludos
Atte
Esteban Micossi

Zarlu

unread,
Oct 2, 2021, 8:05:18 PM10/2/21
to Comunidad de Visual Foxpro en Español
Buenas noches Esteban!

Aplicando un refresh() al grid?

Muestra el código del DinamycBackColor
Tienes enlazado ese Check a un campo?

Suerte
zarlu
Chetumal, Qintana roo, México

Esteban Micossi

unread,
Oct 2, 2021, 9:05:44 PM10/2/21
to Comunidad de Visual Foxpro en Español
Hola Zarlu.
Ante todo, gracias por responder. Si es un cursor con el campo MRK integer. Probe con  thisform.grid1.refresh()
pero, nada. Mira este es el codigo que pongo en el Click del chekbox:

if this.value=1
thisform.container2.grid1.SetAll("DynamicBackColor","RGB(255,168,32)", "Column")
else
thisform.container2.grid1.SetAll("DynamicBackColor","RGB(255,255,255)", "Column")
endif
Pero ya voy a ver que pasa x que recien veo que si doy click en otra fila en cualquier parte lo mismo me colorea aunque el chekbox no este tildado.
Gracias y saludos
Esteban.

Zarlu

unread,
Oct 2, 2021, 9:19:14 PM10/2/21
to Comunidad de Visual Foxpro en Español
Qué tal Esteban!

Sería algo así:
Thisform.grid1.SetAll("dynamicforecolor","IIF(RECEP.STATUS=[C], RGB(255,0,0),IIF(EMPTY(RECEP.PRIORIDAD), RGB(0,0,0), RGB(0,0,255)) )", "Column")
(En ese ejemplo hay dos condicionantes anidadas, adáptalo.)

Va en el init del Form
Y apoyate quizá en el refresh() al cambiar el valor del check

zarlu
Chetumal, Quintana Roo, México

Víctor Hugo Espínola Domínguez

unread,
Oct 2, 2021, 10:16:23 PM10/2/21
to publice...@googlegroups.com
Debes crear un método en el form, ponle el nombre ColorFila o caulquier otro
Método thisform.ColorFila
if elCursor.MRK = 1
lnColor = RGB(255,168,32)
else
lnColor = RGB(255,255,255)
endif

Return lnColor

En el Init del grid:
This.SetAll("DynamicBackColor", "Thisform.ColorFila()", "Column")

En el evento Click del checkbox
This.Parent.Parent.Refresh()

Saludos,
Víctor.
Lambaré - Paraguay.



--
Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/3e7b793d-9672-4370-a011-5a87b36d70a4n%40googlegroups.com.

Esteban Micossi

unread,
Oct 4, 2021, 3:50:50 PM10/4/21
to Comunidad de Visual Foxpro en Español
Hola Victor
Perfecto amigo. En el evento Click del Chekbox tengo una rutina, pero con solo poner al final " This.Parent.Parent.Refresh()", se me soluciono el problema.
Gracias estimado. Te dejo cordiales saludos
Atte.
Esteban Micossi

Reply all
Reply to author
Forward
0 new messages