Page 1 of 2
¿Como ejecutar un comando guardado en una variable?
Posted: Sat Dec 29, 2012 12:25 am
by byrpa
Hola, fijense que estoy haciendo un programa y tengo una duda. En una variable creo un comando, pero no se como poder ejecutarla. Por ejemplo, comando="form1.texto1.value=1"
En vfp unicamente ponia
&comando
y listo, pero no he podido realizarlo con harbour.
¿Alguien sabe como hacerlo?
Gracias por anticipado.
Re: ¿Como ejecutar un comando guardado en una variable?
Posted: Sat Dec 29, 2012 1:26 am
by Leopoldo Blancas
Yo lo hago así
&(comendo)
y listo, también ten en cuenta el tipo de variables. deben de ser Publicas o Privadas ya que se pueden crear y destruir en tiempo de ejecución.
Saludos
Polo
Re: ¿Como ejecutar un comando guardado en una variable?
Posted: Sat Dec 29, 2012 1:36 am
by danielmaximiliano
Hola Byrpa:
yo utilize este formato para un control.
Code: Select all
Procedure SizeTest()
Local nX
Principal.Container_Tab.Width := Principal.Width - 10
Principal.Container_Tab.Height := Principal.Height - 60
For nX := 1 to nPage -1
cImage := "Image" + ltrim(str(nX))
Principal.Container_Tab(nX).&(cImage).Width := Principal.Width - 30
Principal.Container_Tab(nX).&(cImage).Height := Principal.Height - 100
next
Return
el ejemplo completo esta
aqui
Re: ¿Como ejecutar un comando guardado en una variable?
Posted: Sat Dec 29, 2012 1:51 am
by Leopoldo Blancas
Hola Daniel siempre superando al aprendiz... Bien!!!

Re: ¿Como ejecutar un comando guardado en una variable?
Posted: Sat Dec 29, 2012 1:55 am
by danielmaximiliano
Leopoldo Blancas wrote:Hola Daniel siempre superando al aprendiz... Bien!!!

Hola Polo :
cuando no Existia BossTaurus del amigo Claudio tuve que conformarme con esto.
Saludos
Re: ¿Como ejecutar un comando guardado en una variable?
Posted: Sat Dec 29, 2012 2:00 am
by Leopoldo Blancas
Hola Daniel,
No entiendo a que te refieres?
Que haces con BossTaurus o que dejaste de hacer...????
no he revisado bien BoosTaurus, nada más ejecute los exe.
Saludos y Feliz año... alla en Argentina
Polo
Re: ¿Como ejecutar un comando guardado en una variable?
Posted: Sat Dec 29, 2012 2:03 am
by byrpa
Daniel gracias por tu pronta respuesta. Fijate que tambien encontre que usar ?&Comando tambien ejecuta lo que esta adentro de la variable comando. Para mi mala suerte en mi codigo no funciona y no se porque, acá les dejo el codigo, para que haber si me echan una manita.
Para explicarles un poco, lo que quiero es que, en cada formulario cuando regrese la consulta de Mysql no tenga que estar llenando manualmente cada caja de texto, entonces hice un array llamado cCampos que esta constituido por cada uno de los campos que tengo en la base y los cuadros de texto del formulario se llaman igual, unicamente les agrego "txt" a cada uno.
Function CargarDatos(cform)
pro_aaa.txtnombre.value:=oRow:fieldGet("nombre") /* Si funciona, prueba manual */
prueba='pro_aaa.txtnombre.value:=oRow:fieldGet("nombre")'
&(prueba) /* No Funciona */
For x=1 to len(cCampos)
Comando=cForm+'.txt'+cCampos[x]+'.value:=oRow:fieldGet("'+cCampos[x]+'")'
MsgInfo(Comando)
*?&Comando /*No funciona*/
Endfor
*Prueba='MsgInfo("Prueba de comando")' /*Linea si funciona*/
*?&prueba /*Linea si funciona*/
Return
Saludos y gracias por toda su ayuda.
Re: ¿Como ejecutar un comando guardado en una variable?
Posted: Sat Dec 29, 2012 2:27 am
by Leopoldo Blancas
Mi ejemplo es:
PROCEDURE MisControles()
LOCAL nRow
LOCAL cCadena:= "MsgInfo(STR(nRow := GetProperty( 'Form_1', aNomControles[2], 'ROW' ) ))"
LOCAL bBloque
/*
MsgInfo(STR(LEN(aControles)))
MsgInfo (aControles[1][1])
MsgInfo (aControles[2][1])
*/
MsgInfo(aNomControles[2])
* MsgInfo(STR(nRow := GetProperty( "Form_1", aNomControles[2], "ROW" ) ))
&(cCadena)
MsgInfo((nRow := GetProperty( "Form_1", aNomControles[2], "InputMask" ) ))
RETURN NIL
y funciona... Lo que veo es el orden de las comillas " y del apostrofe '
Debe de ser "Lo que sea 'si' "
Checa y me dices...
Saludos
Polo
Re: ¿Como ejecutar un comando guardado en una variable?
Posted: Sat Dec 29, 2012 2:31 am
by Leopoldo Blancas
Hola...
Tambien veo que le falta un Puntito a la cadena...
For x=1 to len(cCampos)
Comando=cForm+'.txt'+cCampos[x]+'.value:=oRow:fieldGet("'+cCampos[x]+'")' // aqui es '.txt.'
MsgInfo(Comando)
*?&Comando /*No funciona*/
Endfor
Saludos
Polo
Re: ¿Como ejecutar un comando guardado en una variable?
Posted: Sat Dec 29, 2012 2:59 am
by byrpa
Gracias, voy a probarlo ahora mismo, pero fijate en estas tres lineas:
La primera y la segunda funcionan a la perfección:
pro_aaa.txtnombre.value:=oRow:fieldGet("nombre") /* Si funciona, prueba manual */
prueba='pro_aaa.txtnombre.value:=oRow:fieldGet("nombre")'
y la tercera ya no funciona y es la misma linea de la primera, solo que en la variable prueba. Esa linea la hice manual, sin usar for.
&(prueba) /* No Funciona tambien la probe con ?&prueba */
Gracias por sus comentarios.
En la linea dos, ya cambie las comillas por apostrofes y viceversa y nada.