FoxPro/Visual FoxPro - Desactivar algunos controles mediante el INLIST

 
Vista:

Desactivar algunos controles mediante el INLIST

Publicado por Gabriel (427 intervenciones) el 03/07/2006 17:48:26
Amigos : Tengo un problema que necesito resolver a continuacion les detallo la codificacion que estoy aplicando, espero algun conocedor del tema me pueda ayudar a resolverlo.

For c = 1 to Thisform.ControlCount
Do Case
Case INLIST(Thisform.Controls(c).name,"TextBox","EditBox")
Thisform.Controls(c).Enabled = .F. && Desactiva todos los controles y deseo desactivar los TEXBOX y EDITBOX
EndCase
EndFor

Sera posible mediante esta codificacion utilizando el INLIST desactivar solo esos controles...

Se que la otra manera seria utilizando el Thisform.Setall por cada control, pero deseo hacerlo de la forma que les detallo..

Espero sus comentarios y sugerencias sobre el tema...

Saludos,

GABRIEL
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:Desactivar algunos controles mediante el INLIST

Publicado por Plinio (7841 intervenciones) el 03/07/2006 18:03:40
IF Thisform.Controls(c).Class = "Textbox" OR ;
Thisform.Controls(c).Class = "Editbox"
Thisform.Controls(c).Enabled = .f.
endif
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
sin imagen de perfil

RE:Desactivar algunos controles mediante el INLIST

Publicado por Ernesto Hernandez (4623 intervenciones) el 03/07/2006 18:46:38
Espero te sirva

For c = 1 to Thisform.ControlCount
Do Case
Case INLIST(Thisform.Controls(c).name,"TextBox","EditBox")
DO CASE
CASE Thisform.Controls(c).Class = "Textbox"
Thisform.Controls(c).Enabled = .F.
CASE Thisform.Controls(c).Class = "Editbox"
Thisform.Control(c).Enabled=..F.
ENDCASE
EndCase
EndFor

Suerte
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:Desactivar algunos controles mediante el INLIST

Publicado por gabriel (427 intervenciones) el 04/07/2006 17:10:34
Gracias amigos por responder a mi pregunta pero no logro desactivar ningun Control, tendra que ver el hecho de que cada control esta dentro de un Contenedor y fueron creados con la clase del
VFP llamada WIZSHDOW.VCX

For c = 1 to Thisform.ControlCount
Do Case
Case INLIST(Thisform.Controls(c).class,"TextBox","EditBox")
Thisform.Controls(c).Enabled = .F. && Desactiva todos los controles y deseo desactivar los TEXBOX y EDITBOX
EndCase
EndFor

Espero sus comentarios...

Saludos,
GABRIEL
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:Desactivar algunos controles mediante el INLIST

Publicado por Plinio (7841 intervenciones) el 04/07/2006 17:14:19
Busca en el diseñador de formulario y anota el valor que tiene la propiedad Class de esos objectos y cambialo en el codigo.

En vez de recorrer el formulario, recorre el contenedor.
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:Desactivar algunos controles mediante el INLIST

Publicado por gabriel (427 intervenciones) el 04/07/2006 22:28:43
Amigo Plinio me diste la pista de la solucion al problema...
Amigo Ernesto el CASE funciona pero solo cuando esta activando un solo CASE...

Gracias amigos por sus comentarios y sugerencias...

Saludos,

GABRIEL
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
sin imagen de perfil

RE:Desactivar algunos controles mediante el INLIST

Publicado por Ernesto Hernandez (4623 intervenciones) el 04/07/2006 19:45:04
Entonces solo agrega al codigo el nombre del contenedor
espero te sirva

For c = 1 to Thisform.Contenedor.ControlCount
Do Case
Case INLIST(Thisform.Contenedor.Controls(c).name,"TextBox","EditBox")
DO CASE
CASE Thisform.Contenedor.Controls(c).Class = "Textbox"
Thisform.Contenedor.Controls(c).Enabled = .F.
CASE Thisform.Contenedor.Controls(c).Class = "Editbox"
Thisform.Contenedor.Control(c).Enabled=..F.
ENDCASE
EndCase
EndFor

Suerte
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