Visual Basic - ByVal

Life is soft - evento anual de software empresarial
 
Vista:

ByVal

Publicado por neo (4 intervenciones) el 26/08/2003 19:23:46
Muy buenas a todos. Estoy con una aplicación, pero tengo un problema, no se exactamente que es lo que quiere decir esto:

Private Sub ModoEditar(ByVal Ok As Boolean)

Se que es un procedimiento, y que se declara una variable de tipo boleano , pero ByVal no se lo que hace.
En la aplicación esta funcion luego es llamada desde otras mediante los valores true o false. Pero necesito saber que es Byval o que funcion desempeña.

Gracias y 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:ByVal

Publicado por maCo (323 intervenciones) el 26/08/2003 19:41:59
byval = by value = por valor
byref = by reference = por referencia

byval pasa una copia y byref pasa un puntero, obviamente vb manipula el puntero por ti, asi que no tienes que preocuparte en trabajar con punteros.
y no olvides que por defecto vb usa el por referencia amenos que pongas byval

sub prueba(numero as integer) = sub prueba(byref numero as integer)
eso es por referencia
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:ByVal

Publicado por neo (4 intervenciones) el 26/08/2003 20:20:17
Pero entonces esto que quiere decir, no lo termino de entender muy muy bien:

Private Sub ModoEditar(ByVal Ok As Boolean)

TxtCurCodigo.Locked = Not Ok
TxtCurNombre.Locked = Not Ok
TxtCurVacantes.Locked = Not Ok
TxtCurProfe.Locked = Not Ok
CmdNuevo.Enabled = Not Ok
CmdEditar.Enabled = Not Ok
CmdGuardar.Enabled = Ok
CmdEliminar.Enabled = Not Ok


End Sub

Private Sub CmdEditar_Click()

ModoEditar True

End Sub

TxtCurCodigo.Locked : esto se que es para modificar un control, pero lo que no entiendo muy bien es la funcion de la variable ok.
Y en cmd_Editar, cuando pone MOdoEitar True quiere decirr que se pueden modificar los textbox?

Gracias de nuevo y 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:ByVal

Publicado por maCo (323 intervenciones) el 26/08/2003 23:32:15
bueno a ver ejm:
dim minumero as integer

sub prueba(numero as integer)
numero = 1
end sub

sub prueba(byval numero as integer)
numero = 1
end sub

sub llamarprueba
call prueba(minumero)
end sub

minumero sera 0 cuando lo llames byval y 1 cuando lo llames byref
por que ?
porque en byval fue modificada la copia de minumero, pero en byref fue modificado la minumero

y en tu eemplo se pasa un true como byval pero despues dice not ok
false = not true
true = not false
osea el valor de true se cambio a false, osea que el text no estara en modo lock
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:ByVal

Publicado por neo (4 intervenciones) el 27/08/2003 00:10:56
Entonces....lo que hago con ModoEditar True es modificar el valor de una copia de ok en la función ModoEditar , para que textbox este en modo locked.
Y si pongo ModoEditar False, no modifico ningun valor, por lo que no me dejaría escribir en el textbox puesto que estaría en Not ok?

Muchisimas gracias y perdón por si soy un poco pesado.
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:ByVal

Publicado por maCo (323 intervenciones) el 27/08/2003 00:57:53
de que estas hablando..
del valor de ok o del valor de locked ?

pases TRUE o FALSE al procedimiento ModoEditar estaras modificando dentro del procedimiento la copia de ok, cuando tienes "NOT ok"
despues que lo modificaste, el valor se asignara a la propiedad Locked.
Locked seria como Disabled=deshabilido, y Enabled =habilitado.

y para desabilitar los textbox, tienes que pasarle un FALSE al procedimiento ModoEditar()
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:ByVal

Publicado por neo (4 intervenciones) el 28/08/2003 00:47:23
Ok, ya lo pillo. Muchisimas gracias por tu ayuda.
Un saludo.
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