Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: agus0 en 22 Enero 2011, 22:06 PM

Título: [Solucionado] Cambiar una Variable String Desde una Funcion
Publicado por: agus0 en 22 Enero 2011, 22:06 PM
Hola Foooro!!

Tengo una Pequeñisima Duda  :rolleyes:

Quiero Cambiar El "Contenido" de una Variable del Tipo String desde una Funcion... Hasta ahi parece Facil... Pero el Problema esta en que quiero pasarle a la Funcion el Nombre de la Variable...

Habia pensado en esto

Código (vb) [Seleccionar]
Private Sub ChgVar(ByVal vVar As Object, NewStr As String)
'On Error Resume Next
   vVar = NewStr
End Sub


Pero me devuelve:

"No Coinciden Los Tipos."

La Pregunta es Como que tengo que delcarar la variable vVar Para que Coincidan los Tipos

o Como Puedo Hacer una Funcion Que Realize eso...

Gracias!!
Título: Re: [Ayuda] Cambiar una Variable String Desde una Funcion
Publicado por: ignorantev1.1 en 22 Enero 2011, 22:14 PM
Código (vb) [Seleccionar]

Sub chgVar(tVar As String, ByVal valor As String)
    tVar = valor
End Sub

Private Sub Form_Load()
    Dim Variable As String
    Variable = "No entiendo muy bien"
    Debug.Print Variable
    Call chgVar(Variable, "asi? o como?")
    Debug.Print Variable
End Sub
Título: Re: [Ayuda] Cambiar una Variable String Desde una Funcion
Publicado por: raul338 en 22 Enero 2011, 23:48 PM
Cabe recalcar que estas declarando vVar como ByVal, por lo que no afecta en nada fuera de la funcion (estas haciendo una instruccion y un parametro para nada)

Esa funcion deberia funcionar, pero le estas pasando un variant y string como parametros?
Título: Re: [Ayuda] Cambiar una Variable String Desde una Funcion
Publicado por: BlackZeroX en 23 Enero 2011, 01:51 AM
...

mmm

Cita de: agus0 en 22 Enero 2011, 22:06 PM
Código (vb) [Seleccionar]
Private Sub ChgVar(ByVal vVar As Object, NewStr As String)
'On Error Resume Next
    vVar = NewStr
End Sub


* Cuando es una variable object y se le quiere asignar otra, solo se setean es decir asi Set variableObject = VariableObject

* Por otro lado un byval como parametro realiza una copia mientras que byref realiza el trabajo en la variable que se le paso omo parametro.

* y lo mas importante la logica de la funcion esta mal!¡, podrias explicarnos que deseas hacer y te podremos guiar!¡.

Temibles Lunas!¡.
Título: Re: [Ayuda] Cambiar una Variable String Desde una Funcion
Publicado por: agus0 en 23 Enero 2011, 01:56 AM
Muchas Gracias ignorantev1.1 Me Confundi Yo Lo Declare como Objeto



Cita de: ignorantev1.1 en 22 Enero 2011, 22:14 PM
Código (vb) [Seleccionar]

Sub chgVar(tVar As String, ByVal valor As String)
   tVar = valor
End Sub

Private Sub Form_Load()
   Dim Variable As String
   Variable = "No entiendo muy bien"
   Debug.Print Variable
   Call chgVar(Variable, "asi? o como?")
   Debug.Print Variable
End Sub


Algo asi Pero ahora que me doy Cuenta la Variable La pasaste Como tal yo Necesitaria algo asi:
Código (vb) [Seleccionar]

Sub chgVar(tVar As String, ByVal valor As String)
   tVar = valor
End Sub

Private Sub Form_Load()
   Dim Variable As String
   Variable = "No entiendo muy bien"
   Debug.Print Variable
   Text1.Text = "Variable"
   Call chgVar(Text1.Text, "asi? o como?")
   Debug.Print Variable
End Sub
Título: Re: [Ayuda] Cambiar una Variable String Desde una Funcion
Publicado por: raul338 en 23 Enero 2011, 03:53 AM
Código (vb) [Seleccionar]

Sub chgVar(tVar As TextBox, ByVal valor As String)
    tVar.Text = valor
End Sub

Private Sub Form_Load()
    Call chgVar(Text1, "asi? o como?")
End Sub


Algo asi? Dudo que sea lo que necesites. Que quieres hacer exactamente?
Título: Re: [Ayuda] Cambiar una Variable String Desde una Funcion
Publicado por: agus0 en 23 Enero 2011, 04:08 AM
Cita de: raul338 en 23 Enero 2011, 03:53 AM
Código (vb) [Seleccionar]

Sub chgVar(tVar As TextBox, ByVal valor As String)
    tVar.Text = valor
End Sub

Private Sub Form_Load()
    Call chgVar(Text1, "asi? o como?")
End Sub


Algo asi? Dudo que sea lo que necesites. Que quieres hacer exactamente?

El Tema es asi Quiero Cambiar una Variable Que Existe Pero Buscarla por un TextBox Por Ejemplo asi

Yo Escribo en El TextBox1 El Nombre de la Variable que quiero Cambiar y en el TextBox2 Lo que Voy a introducir en la Variable. Se entiende?
Título: Re: [Ayuda] Cambiar una Variable String Desde una Funcion
Publicado por: seba123neo en 23 Enero 2011, 06:15 AM
Hola, lo que quiere si no entendi mal es cambiar el valor de una variable, conociendo su nombre como string...eso lo podes hacer con la funcion CallByName.

saludos.
Título: Re: [Ayuda] Cambiar una Variable String Desde una Funcion
Publicado por: BlackZeroX en 23 Enero 2011, 07:13 AM
.
Yo sabia que CallByName() solo funciona con Propiedades, funciones y/o Procesos ( es decir metodos ) mas no con variables... por otra parte esto se puede hacer con MS Script agregando el modulo de clase, con las variables publicas ( Leer la MSDN No sean flojos ). Pero esto es un lio, por quie no mejor hacer un Select Case y evitarse tantas cosas sin un fin?,

P.D.:

(http://lh5.ggpht.com/_liAitjwgD9U/ST-TjoyHTII/AAAAAAAAAV0/dsh5cOIAY8U/cartell%5B3%5D.jpg)

Dulces Lunas!¡.
.
Título: Re: [Ayuda] Cambiar una Variable String Desde una Funcion
Publicado por: seba123neo en 23 Enero 2011, 07:28 AM
@BlackZeroX: con variables no va, pero se puede crear una clase que tenga metodos que cambie los valores de las variables y tengan el mismo nombre los metodos que las variables, el tema es que hay que crear un metodo para cada variable...otra que se me ocurre y no probe si es posible, es manipular ya la variable desde memoria obteniendo la direccion de la variable con StrPtr(nombreVariable) y con alguna api setearle el valor que el pone en el textbox, pero ya se hace mas complicado para algo que creo se puede solucionar mas facil.

agus0 , tendrias que decir para que realmente necesitas hacer esto, para ver si se puede hacer de otra forma.

PD: ojala hubiera estado de parranda, al contrario estuve mas ocupado por eso no entraba.

saludos.
Título: Re: [Ayuda] Cambiar una Variable String Desde una Funcion
Publicado por: agus0 en 23 Enero 2011, 07:42 AM
Hola Seba Tanto Tiempo... Si Es eso Lo que Quiero hacer Teniendo el Nombre como una String... Lo Que pasa es que quiero Cambiar las Variables de Un Programa desde Otro Usando Sokets Entonces La unica manera de pasar los datos son como String...

Pense en Select Case como La Ultima Instancia ya que son mas de 30 Variables... Osea es un Numero :S

Bueno Eso...




Listo Ya lo Solucione, Gracias Seba y Black, Use CallByName... No Pense que Servia para Variables  :rolleyes:  Bueno si...

Aca un Code De Ejemplo que anda de Diez...

Código (vb) [Seleccionar]

Public Variable As String

Private Sub Command1_Click()
   CallByName Me, "Variable", VbLet, "Hola"
   MsgBox Variable
End Sub

Private Sub Form_Load()
   Variable = "Manzana"
   MsgBox Variable
End Sub

Título: Re: [Solucionado] Cambiar una Variable String Desde una Funcion
Publicado por: BlackZeroX en 23 Enero 2011, 08:16 AM
.
Que raro a mi nunca me sirvio con variables, pero bueno.

Dulces Lunas!¡.

Título: Re: [Solucionado] Cambiar una Variable String Desde una Funcion
Publicado por: seba123neo en 23 Enero 2011, 08:22 AM
si se declara la variable como public funciona, sino no  :P
Título: Re: [Solucionado] Cambiar una Variable String Desde una Funcion
Publicado por: agus0 en 23 Enero 2011, 08:28 AM
Cita de: seba123neo en 23 Enero 2011, 08:22 AM
si se declara la variable como public funciona, sino no  :P

Mira Vos Yo las Tenia Public Por que las "Comparto con los Modulos" Pero Si no Fuera por eso Todavia estaria Tratando por que No sabia eso...

"Todos Los Dias se Aprede Algo Nuevo"