¿Como ejecutar un comando guardado en una variable?

HMG en Español

Moderator: Rathinagiri

byrpa
Posts: 42
Joined: Wed Apr 14, 2010 5:09 am
Location: Guatemala

¿Como ejecutar un comando guardado en una variable?

Post 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.
Leopoldo Blancas
Posts: 388
Joined: Wed Nov 21, 2012 7:14 pm
Location: México

Re: ¿Como ejecutar un comando guardado en una variable?

Post 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
User avatar
danielmaximiliano
Posts: 2646
Joined: Fri Apr 09, 2010 4:53 pm
Location: Argentina
Contact:

Re: ¿Como ejecutar un comando guardado en una variable?

Post 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
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO
Leopoldo Blancas
Posts: 388
Joined: Wed Nov 21, 2012 7:14 pm
Location: México

Re: ¿Como ejecutar un comando guardado en una variable?

Post by Leopoldo Blancas »

Hola Daniel siempre superando al aprendiz... Bien!!! ;)
User avatar
danielmaximiliano
Posts: 2646
Joined: Fri Apr 09, 2010 4:53 pm
Location: Argentina
Contact:

Re: ¿Como ejecutar un comando guardado en una variable?

Post 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
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO
Leopoldo Blancas
Posts: 388
Joined: Wed Nov 21, 2012 7:14 pm
Location: México

Re: ¿Como ejecutar un comando guardado en una variable?

Post 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
byrpa
Posts: 42
Joined: Wed Apr 14, 2010 5:09 am
Location: Guatemala

Re: ¿Como ejecutar un comando guardado en una variable?

Post 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.
Leopoldo Blancas
Posts: 388
Joined: Wed Nov 21, 2012 7:14 pm
Location: México

Re: ¿Como ejecutar un comando guardado en una variable?

Post 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
Leopoldo Blancas
Posts: 388
Joined: Wed Nov 21, 2012 7:14 pm
Location: México

Re: ¿Como ejecutar un comando guardado en una variable?

Post 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
byrpa
Posts: 42
Joined: Wed Apr 14, 2010 5:09 am
Location: Guatemala

Re: ¿Como ejecutar un comando guardado en una variable?

Post 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.
Post Reply