Page 1 of 1

PARAMETROS DE UNA FUNCION

Posted: Wed Aug 29, 2012 9:01 pm
by TOTOVIOTTI
Estimados:
Necesito pasar unos parametros de una Función a otra, por ejemplo:

Aquí viene mi programa:

function main()
.
..
...
....
programa_1(var1,var2,var3)
....
...
..
return nil

function programa_1
parameters var1,var2,var3 //necesito recibirla así, porque estas variables siguen por varias funciones, (en el viejo clipper, me lo dejaba hacer así)
..
...
...
..
.
return nil

Pero cuando compilo, me da Ambiguous reference "var1","var2","var3"

Como puedo hacer para solucionar este tema?
Muchas gracias!
Roberto

Re: PARAMETROS DE UNA FUNCION

Posted: Wed Aug 29, 2012 9:11 pm
by TOTOVIOTTI
Pude encontrar que haciendo:

function main()
static var1,var2,var3

programa_1(var1,var2,var3)

return nil

function programa_1
parameters var1,var2,var3..

return nil

pero cuando no son variables las que tengo que pasar, por ejemplo:
programa_1(.t.,"titulo",0)
se me complica....

Gracias!
Roberto

Re: PARAMETROS DE UNA FUNCION

Posted: Wed Aug 29, 2012 9:21 pm
by horacio
Porqué no utilizas

Code: Select all

Function programa_1( Var1, Var2, Var3 )
 

Re: PARAMETROS DE UNA FUNCION

Posted: Wed Aug 29, 2012 9:34 pm
by TOTOVIOTTI
Horacio,
porque necesito pasarlo de funcion en funcion, y necesito para un caso especial dejarlo
de esa forma.
Gracias

Re: PARAMETROS DE UNA FUNCION

Posted: Wed Aug 29, 2012 9:38 pm
by horacio
Yo paso los parámetros de función en función utilizando esta notación, no sé cual es el impedimento.

Re: PARAMETROS DE UNA FUNCION

Posted: Wed Aug 29, 2012 9:44 pm
by TOTOVIOTTI
Horacio
no es impedimento, necesito reutilizar unas rutinas que ya tenía desarrolladas en clipper, y como
estoy probando convertir mis aplicaciones, quería tocar lo menos posible unas rutinas complicadas de cálculos
que ya tengo desarrolladas.
Roberto

Re: PARAMETROS DE UNA FUNCION

Posted: Wed Aug 29, 2012 9:46 pm
by acuellar
Roberto, que editor usas para enlazar tus programas?
Si es UEstudio debes colocar 0 en Warning level en Opciones de compilador.

o inicializar tus variables como PUBLIC en el primer programa.

Saludos,

Adhemar

Re: PARAMETROS DE UNA FUNCION

Posted: Wed Aug 29, 2012 9:50 pm
by horacio
Ok, no se entendía esa situación en tu post.

Saludos

Re: PARAMETROS DE UNA FUNCION

Posted: Wed Aug 29, 2012 9:57 pm
by TOTOVIOTTI
Adhemar,
disculpa la molestia, como sería un pequeño ejemplo en un par de líneas.
Roberto

Re: PARAMETROS DE UNA FUNCION

Posted: Wed Aug 29, 2012 10:19 pm
by acuellar
Si no usas UEstudio tenes que hacer asi:

Code: Select all

#include "FiveWin.ch"
*
memvar Var1,Var2,Var3
Function Main()
   Public Var1,Var2,Var3
...
Return
 
Saludos,

Adhemar

Re: PARAMETROS DE UNA FUNCION

Posted: Wed Aug 29, 2012 10:23 pm
by TOTOVIOTTI
Adhemar, eso está perfecto y entendido, el tema es cuando a la 2da funcion, no paso
las variables var1,var2,var3, sino, valores propiamente dicho:

#include "FiveWin.ch"
*
memvar Var1,Var2,Var3
Function Main()
Public Var1,Var2,Var3


progrma(.t.,"titulo",0) //no son las variables var1,var2,var3
...
Return

Se entiende?
Gracias!

Re: PARAMETROS DE UNA FUNCION

Posted: Wed Aug 29, 2012 10:31 pm
by acuellar
En tu funcion colocas las variables:

Code: Select all

Function progrma(Var1,Var2,Var3) 
?Var1 // .t.
?Var2 // titulo
?Var3 // 0
Return Nil
 
Saludos,

Adhemar

Re: PARAMETROS DE UNA FUNCION

Posted: Thu Aug 30, 2012 3:10 pm
by interwin
si pasas variables a una funcion de la forma:

function (VAR1,VAR2,VAR3)

Las variables VAR1,VAR2,VAR3 en la funcion se manejan como locales


Si pasas las variables de la forma

function
parameters VAR1,VAR2,VAR3

las variables VAR1,VAR2,VAR3 se manejan como privates y por eso el compilador te manda el warning con el mensaje de ambiguos reference, pero es solo un warning y tu funcion trabaja perfectamente

Saludos.