Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

duda con function vb6

Estas en el tema de duda con function vb6 en el foro de Visual Basic clásico en Foros del Web. Ante todo gracias al que se interese en mi duda. El tema es asi: tengo una funcion a la que le envio una variable x ...
  #1 (permalink)  
Antiguo 03/11/2011, 10:57
 
Fecha de Ingreso: agosto-2007
Mensajes: 66
Antigüedad: 17 años, 3 meses
Puntos: 0
duda con function vb6

Ante todo gracias al que se interese en mi duda.
El tema es asi:
tengo una funcion a la que le envio una variable x como parametro declarada como currency con un valor, la cosa que segun ciertos criterios dentro de esa funcion el valor de esa variable la cambio pero la cambio dentro de la funcion, ahora cuando vuelvo de la funcion la variable que le habia pasado a la funcion me cambio el valor por el modificado en la funcion. (las variables son de ambito local, no son ni publicas ni globales)
como es esto??
paso el codigo

espero haber sido claro

dim z as currency
z=222
r = calculo(z)
...

private function calculo(x as currency)
...
b=111
...
x=b
.....

calculo=x
end function
  #2 (permalink)  
Antiguo 03/11/2011, 12:34
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años
Puntos: 53
Respuesta: duda con function vb6

Hola, el problema es que dentro de la funcion estás modificando el Valor de la variable que le envias, existen dos posibilidades, la primera de ellas es que utilices una variable distinta y la otra que definas así la funcion:

Código vb:
Ver original
  1. Private Function Calculo(ByVal x As Currency) As Currency
  2. End Function
De este modo pasas el VALOR de la variable o sea, es como si pasases una copia de la misma y no modificas su valor al salir de ella.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #3 (permalink)  
Antiguo 03/11/2011, 14:42
 
Fecha de Ingreso: agosto-2007
Mensajes: 66
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: duda con function vb6

Gracias erbuson es como tu dices, tengo que pasar la variable como ByVal
  #4 (permalink)  
Antiguo 03/11/2011, 14:47
Usuario no validado
 
Fecha de Ingreso: junio-2010
Ubicación: Guatemala
Mensajes: 196
Antigüedad: 14 años, 5 meses
Puntos: 25
Respuesta: duda con function vb6

Saludos, como mencionó erbuson tienes que cambiar la declaración de la función a ByVal, ya que visual basic 6 tiene por default la asignación por referencia o sea ByRef.
Cuando asignas un valor por referencia le estas indicando que en vez de crear una nueva variable, que tome la que estas enviando como parametro.

Etiquetas: function, vb6
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:51.