pasar un objeto contenedor y acceder a sus objetos
Publicado por Hernaldo (1 intervención) el 09/12/2006 03:02:00
yo tengo un formulario (supongamos FRM1), desde alli creo un objeto que llamo oAbm, el cual tiene un metodo que se llama seteos(). Por parametro le paso la instancia del objeto FRM1, de esta manera: oAbm.seteos(thisform).
Yo se que la instancia la recibe ya que antes de que ocurra el FOR, los cambios se realizan en el FRM1. El problema surge en el FOR cuando compilo diciendome: "property pFormulario is not found".
Mi idea de ese FOR es que recorra todos los controles de la instancia FRM1 que le pase y que aquellos que sean de tipo textbox, haga lo que le dije en el FOR.
¿Cual seria la solucion?
Desde ya muchas gracias.
Metodo seteos() del objeto oAbm
----------------------------------------
PARAMETERS pFormulario as Form
PUBLIC cControl as Control
IF oAbm.estado = "nuevo" then
WITH pFormulario
*frmAbmRubro
.cmdPrimero1.enabled = .F.
.cmdUltimo1.enabled = .f.
.cmdSiguiente1.enabled = .f.
.cmdAnterior1.enabled = .f.
.cmdmodificar1.Enabled = .f.
.cmdBaja1.Enabled = .f.
.cmdcancelar1.Enabled = .T.
.cmdGuardar1.Enabled = .T.
endwith
FOR EACH cControl IN pFormulario
*frmAbmRubro
IF (pFormulario.cControl.class = "textbox") then
WITH pFormulario.cControl
.controlSource = ''
.readonly = .f.
.value = ''
ENdWith
MESSAGEBOX("todo salio bien")
ELSE
MESSAGEBOX("algo paso")
ENDIF
NEXT cControl
ELSE
endif
Yo se que la instancia la recibe ya que antes de que ocurra el FOR, los cambios se realizan en el FRM1. El problema surge en el FOR cuando compilo diciendome: "property pFormulario is not found".
Mi idea de ese FOR es que recorra todos los controles de la instancia FRM1 que le pase y que aquellos que sean de tipo textbox, haga lo que le dije en el FOR.
¿Cual seria la solucion?
Desde ya muchas gracias.
Metodo seteos() del objeto oAbm
----------------------------------------
PARAMETERS pFormulario as Form
PUBLIC cControl as Control
IF oAbm.estado = "nuevo" then
WITH pFormulario
*frmAbmRubro
.cmdPrimero1.enabled = .F.
.cmdUltimo1.enabled = .f.
.cmdSiguiente1.enabled = .f.
.cmdAnterior1.enabled = .f.
.cmdmodificar1.Enabled = .f.
.cmdBaja1.Enabled = .f.
.cmdcancelar1.Enabled = .T.
.cmdGuardar1.Enabled = .T.
endwith
FOR EACH cControl IN pFormulario
*frmAbmRubro
IF (pFormulario.cControl.class = "textbox") then
WITH pFormulario.cControl
.controlSource = ''
.readonly = .f.
.value = ''
ENdWith
MESSAGEBOX("todo salio bien")
ELSE
MESSAGEBOX("algo paso")
ENDIF
NEXT cControl
ELSE
endif
Valora esta pregunta


0