Autor
|
Tema: [Solucionado] Cambiar una Variable String Desde una Funcion (Leído 6,841 veces)
|
agus0
Desconectado
Mensajes: 360
|
Hola Foooro!! Tengo una Pequeñisima Duda 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 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!!
|
|
« Última modificación: 23 Enero 2011, 07:49 am por agus0 »
|
En línea
|
|
|
|
ignorantev1.1
Desconectado
Mensajes: 617
/\ Así acabo cuando quiero programar...
|
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
|
|
|
En línea
|
|
|
|
raul338
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
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?
|
|
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
... mmm 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!¡.
|
|
« Última modificación: 23 Enero 2011, 02:01 am por BlackZeroX▓▓▒▒░░ »
|
En línea
|
The Dark Shadow is my passion.
|
|
|
agus0
Desconectado
Mensajes: 360
|
Muchas Gracias ignorantev1.1 Me Confundi Yo Lo Declare como Objeto
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: 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
|
|
« Última modificación: 23 Enero 2011, 03:51 am por raul338 »
|
En línea
|
|
|
|
raul338
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
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?
|
|
|
En línea
|
|
|
|
agus0
Desconectado
Mensajes: 360
|
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?
|
|
|
En línea
|
|
|
|
seba123neo
|
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.
|
|
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
. 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.: Dulces Lunas!¡. .
|
|
|
En línea
|
The Dark Shadow is my passion.
|
|
|
seba123neo
|
@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.
|
|
« Última modificación: 23 Enero 2011, 14:37 pm por raul338 »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Llamar a una función desde un string
Programación C/C++
|
prometheus48
|
4
|
2,843
|
25 Mayo 2012, 20:57 pm
por prometheus48
|
|
|
cambiar variable de integer a string
.NET (C#, VB.NET, ASP)
|
markitus90
|
6
|
3,582
|
5 Agosto 2012, 20:01 pm
por markitus90
|
|
|
Problema al procesar una variable desde php a una función javascript
PHP
|
Legnak
|
3
|
3,000
|
19 Junio 2013, 04:30 am
por Legnak
|
|
|
Como cambiar el tamaño de una String (Item.string)?
Ingeniería Inversa
|
02k0
|
9
|
6,883
|
3 Septiembre 2015, 20:11 pm
por 02k0
|
|
|
Ayuda inicializando una variable desde función
Programación C/C++
|
yeop
|
7
|
3,162
|
13 Febrero 2016, 13:10 pm
por Eternal Idol
|
|