Clipper/FiveWin - problema con variables locales

 
Vista:
sin imagen de perfil

problema con variables locales

Publicado por marcela molina (86 intervenciones) el 26/11/2007 16:52:32
hola a todos.
como uso una variable local que tenga un valor que sea 1,2 o 3
en otra funcion con el valor anterior.
tengo problema ya que me dice variable no existe.
tendre que declarar como local la variable en esta otra funcion.???

lo hago asi.???

funcion uno()
local mivariable:=0 ---- este entrega valor 1 o 2 o 3 despues que termine esta funcion

return nil

funcion dos()

aca ocupo el valor que entrega la funcion uno
*** pero no lo hace y me pide que vuelva a declarar la variable en local.pero yo quiero que ocupe otro valor dado por la funcion uno
return nil

espero haberme explicado. bueno espero que me ayuden

saludos.
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:problema con variables locales

Publicado por pepe (39 intervenciones) el 26/11/2007 18:45:35
Pues te explicas muy bien, pero lo haces mal.

Con las variables "locales" su ámbito está limitado a la rutina actual. No será visible fuera del ámbito de la rutina.

Si necesitas procesar una variable en otra rutina diferente a la rutina donde fue creada, deberás declarala cómo "pública"

Public MiVariable := 0

Saludos
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:problema con variables locales

Publicado por Ricardo Ramírez Espinoza (201 intervenciones) el 26/11/2007 19:06:26
Puedes hacer devolver o valor a la funcion en vesz de usar variables publicas.. pues las mismas ocupan mas "espacio" .

Saludos
Ricardo Ramírez!
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:problema con variables locales

Publicado por El Duro (121 intervenciones) el 26/11/2007 19:27:28
Marcela:

Cómo bien te explican, puedes usar variables PUBLIC o MEMVAR aunque clipper tiene un límite en cuanto a variables publicas, como bien te explica Ricardo.

Otra forma que puedes utilizar es

FUNCTION Uno()
LOCAL cVar := "UNO"
Dos( cVar )
RETURN(.T.)

FUNCTION Dos(cVar)
? cVar
RETURN(.T.)

Depende mucho si vas a modificar el valor de la variable cVar en la función DOS
si fuera así, puedes pasar la variable por referencia, pero eso es otro capítulo.

El Duro
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:problema con variables locales

Publicado por Ramon Paredes (47 intervenciones) el 26/11/2007 19:32:14
Hola Marcela,

Veamos lo siguiente,

local x,y,z
tengo la funcion primera(),funcion segunda(), funcion tercera()

FUNCION PRIMERA()

X = 2 * 5

FUNCION SEGUNDA( x ) // AQUI EJECUTO LA SEGUNDA FUNCION Y LE PASO COMO PARAMETRO EL RESULTADO DE LA PRIMERA FUNCION.

RETURN

FUNCTION SEGUNDA( x ) // AQUI EJECUTO LA TERCERA FUNCION Y LE PASO COMO PARAMETRO EL RESULTADO DE LA SEGUNDA FUNCION.

y = x * 12

FUNCTION TERCERA( y ) // AQUI EJECUTO LA TERCERA FUNCION Y LE PASO COMO PARAMETRO EL RESULTADO DE LA SEGUNDA FUNCION.

RETURN

FUNCTION TERCERA( y )

z = y + 10

RETURN

OJO SI NO SON PUBLICAS O SEA COMO LOCALES.

Saludes desde Managua, Nicaragua

Ramon Antonio Paredes
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

gracias.

Publicado por marcela (86 intervenciones) el 27/11/2007 17:34:02
quiero agradecer su tiempo .vere que puedo hacer con el tema de variables.
cuando compilo siempre salen esas warning pero funciona igual .pero yo se que esta mal.

saludos.
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