FoxPro/Visual FoxPro - Por favor ayuda con este codigo

 
Vista:

Por favor ayuda con este codigo

Publicado por luis (7 intervenciones) el 17/09/2009 17:56:49
hola masters.

Trabajo en Vfp 8. Pretendo armar un grid con datos y una casilla de verficacion a los efectos de que el usuario me seleccione los registros deseados. Mi objetivo es que cuando el usuario tilde el registro en la casilla de verificación la fila se me resalte y cuando lo destilde la fila vuelva a su color original. Estoy cerca de conseguir lo que pretendo, pero algo le falta a mi codigo, puesto que cuando el usuario tilda un registro el mismo se resalta recién cuando paso a otro registro y no en ese momento.

En definitiva quiero conseguir que en el grid me queden resaltados todos los registros que el usuario seleccionó con el tilde.

Les adjunto mi codigo el cual lo pueden pegar en un prg y ejecutarlo para ver su comportamiento y
de esa manera me ayuden a corregirlo.

Este es el Codigo:

Public oForm
oForm = Createobject("FrmGrid")

oForm.AddObject("Grid1","Grid")

With oForm.Grid1
.ColumnCount = 3
.Height = 288
.Width = 340
.Left = 24
.Top = 24
.deletemark=.f.
.Column1.Width= 17
.column1.alignment = 2
.Column1.Header1.Caption= ""
.Column1.AddObject("Check1","CheckBox")
.column1.check1.name="check1"
.Column1.Check1.Visible = .T.
.Column1.CurrentControl= "Check1"
.Column1.Sparse= .F.
.Column3.Width= 240
.Column3.Header1.Caption= "Detalle"
.Column2.Width= 50
.Column2.Header1.Caption= "Código"
.SetAll("DynamicBackColor","IIF(Ok, RGB(0,220,210), RGB(255,255,255))", "COLUMN")
.refresh
.Visible = .T.
Endwith

oForm.Visible = .T.

Define Class FrmGrid As Form
Top = 0
Left = 0
Height = 334
Width = 390
DoCreate = .T.
Caption = "Seleccione las Materias"
WindowType = 1
WindowState = 0
Name = "FrmGrid"
autocenter=.t.
minbutton=.f.
maxbutton=.f.
* picture=wpath+"otros\lightbuffrock.bmp"
* icon=wpath+"otros\cana.ico"

Procedure Load
* Creo un Cursor con datos para la prueba *

CREATE CURSOR micursor (ok l,codigo n(3),detalle c(30))
INSERT INTO micursor values(.f.,1,"MATEMATICAS")
INSERT INTO micursor values(.f.,2,"LENGUA")
INSERT INTO micursor values(.f.,3,"HISTORIA")
INSERT INTO micursor values(.f.,4,"GEOGRAFIA")
INSERT INTO micursor values(.f.,5,"BIOLOGIA")
INSERT INTO micursor values(.f.,6,"INGLES")
INSERT INTO micursor values(.f.,7,"EDUC.FISICA")
INSERT INTO micursor values(.f.,8,"TALLER")
INSERT INTO micursor values(.f.,9,"TUTORIA")
SELECT micursor
GO top
EndProc


Procedure Unload
* Muestros los Registros Seleccionados *
SELECT * from micursor WHERE ok =.t. into CURSOR misregistros
BROWSE Title "Registros Seleccionados"

Use In micursor
EndProc


EndDefine
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Por favor ayuda con este codigo

Publicado por Pablo (Argentina) (433 intervenciones) el 18/09/2009 14:32:41
Hola Luis, Mira yo creo que este codigo:
.SetAll("DynamicBackColor","IIF(Ok, RGB(0,220,210), RGB(255,255,255))", "COLUMN")

eso de arriva, lo tenes que poner en el evento CLICK del check1, ¿me explico? y asi a medida que vas seleccionando se va cambiando de color o no, lo mas que te puede pasar es con el ultimo registro que selecciones que puede que no cambie de color, para solucionar eso basta con que hagas click en otra columna del grid y lo veras.

Suerte y avisame si funciono, sino lo pruebo en mi maquina y vemos

Pablo - Argentina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Por favor ayuda con este codigo

Publicado por luis (7 intervenciones) el 19/09/2009 15:17:16
ok, de esa manera se resuelve el problema. Gracias por tu colaboracion. Un abrazo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Por favor ayuda con este codigo

Publicado por Miguel (115 intervenciones) el 20/09/2009 17:46:50
tambien puedes colocarlo en el INIT de tu form y lo consideras como propiedad de tu GRID
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar