elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  ByRef a Objecto ListBox
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: ByRef a Objecto ListBox  (Leído 4,630 veces)
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
ByRef a Objecto ListBox
« en: 3 Junio 2015, 15:33 pm »

Tengo este simple código sólo que ahora me la paso más en C# y no recuerdo bien como es en VB.

Tengo una función donde realizo una petición a la base de datos en SQL Server, esta ahi excelente. Pero necesito que desde esa misma función lo cargue a un ListBox, tengo lo siguiente:

Código
  1. Public Sub LoadHours(txtFecha As String, txtTarjeta As String, ByRef Lsb As ListBox)
  2. ' [SNIP]
  3.        Do While Not Rs.EOF And Not Rs.BOF
  4.            Lsb.AddItem Rs.Fields(0).Value
  5.            ' Sí lo muestro en un MsgBox se ve correctamente los datos de la DB
  6.            Rs.MoveNext
  7.        Loop
  8. ' [SNIP]
  9. End Sub

Se supone que al pasarlo como ByRef me tomaría el objecto del formulario e ingresaría los valores de la función dentro del ListBox.

Código
  1. Call LoadHours(Me.txtFecha.Text, Me.txtTarjeta.Text, Me.lsbHoras)

El caso es que me dice: No coinciden los tipos.


« Última modificación: 3 Junio 2015, 15:35 pm por Shell Root » En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: ByRef a Objecto ListBox
« Respuesta #1 en: 3 Junio 2015, 17:10 pm »

probablemente deberías pasar como cadena los valores que quieres agregar al listbox lsb.additem str(etc)


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: ByRef a Objecto ListBox
« Respuesta #2 en: 3 Junio 2015, 17:26 pm »

No creo ya que realizo la prueba basica y no me funciona, por ejemplo:

Código
  1.        Do While Not Rs.EOF And Not Rs.BOF
  2.            'Lsb.AddItem Rs.Fields(0).Value
  3.            Lsb.AddItem "1"
  4.            Rs.MoveNext
  5.        Loop

A lo que me refiero es que funciona todo correctamente, menos cuando paso or ByRef el objecto ListBox.
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: ByRef a Objecto ListBox
« Respuesta #3 en: 3 Junio 2015, 17:31 pm »

y si en vez de byref los pasas como byval, aclaro que puedo estar re equivocado hace años que no uso vb
En línea

pkj

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Re: ByRef a Objecto ListBox
« Respuesta #4 en: 3 Junio 2015, 17:36 pm »

Es muy raro.
Seguro que es un ListBox?
Yo acabo de probar esto:
En el Form1 tengo este command
Código
  1. Private Sub Command1_Click()
  2.   Form2.PRUEBA Me.List1
  3. End Sub

y en el Form2 tengo esto
Código
  1. Public Sub PRUEBA(ByRef LSB As ListBox)
  2.  LSB.AddItem 22332
  3.  LSB.AddItem "Prueba"
  4. End Sub

Y el listbox recibe las dos líneas sin problemas.

Prueba a convertirlo en cadena:
Código
  1. Lsb.AddItem cStr(Rs.Fields(0).Value)

Suerte

y si en vez de byref los pasas como byval, aclaro que puedo estar re equivocado hace años que no uso vb

Si lo pasas ByVal los cambios no afectan al ListBox original.

Saludos
« Última modificación: 3 Junio 2015, 17:39 pm por pkj » En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: ByRef a Objecto ListBox
« Respuesta #5 en: 3 Junio 2015, 17:50 pm »

Re-Seguro que si es un Listbox el objecto del formulario y tambien la variable del ByRef!
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
pkj

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Re: ByRef a Objecto ListBox
« Respuesta #6 en: 3 Junio 2015, 18:02 pm »

Prueba con cStr()

Prueba quitando el ByRef, ya que si no pones nada es ByRef (yo por eso siempre pongo byval a casi todo)

Prueba cambiando la declaracion en lugar de declararlo como ListBox hazlo como Variant o como Object (como Variant no se si lo pillara)

Si se me ocurre algo mas ya te aviso :D

Suerte
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: ByRef a Objecto ListBox
« Respuesta #7 en: 3 Junio 2015, 18:08 pm »

Realmente es una M13RDA, ya funciona perfectamente. Así,

Código
  1. Public Sub LoadHours(txtFecha As String, txtTarjeta As String, ByRef Lsb As Object)

Gracias!
« Última modificación: 3 Junio 2015, 18:11 pm por Shell Root » En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
pkj

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Re: ByRef a Objecto ListBox
« Respuesta #8 en: 3 Junio 2015, 18:25 pm »

Hay que echarle imaginacion y no darse por vencido  ;)
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: ByRef a Objecto ListBox
« Respuesta #9 en: 21 Junio 2015, 07:00 am »

Tengo este simple código sólo que ahora me la paso más en C# y no recuerdo bien como es en VB.

Tengo una función donde realizo una petición a la base de datos en SQL Server, esta ahi excelente. Pero necesito que desde esa misma función lo cargue a un ListBox, tengo lo siguiente:

Código
  1. Public Sub LoadHours(txtFecha As String, txtTarjeta As String, ByRef Lsb As ListBox)
  2. ' [SNIP]
  3.        Do While Not Rs.EOF And Not Rs.BOF
  4.            Lsb.AddItem Rs.Fields(0).Value
  5.            ' Sí lo muestro en un MsgBox se ve correctamente los datos de la DB
  6.            Rs.MoveNext
  7.        Loop
  8. ' [SNIP]
  9. End Sub

Se supone que al pasarlo como ByRef me tomaría el objecto del formulario e ingresaría los valores de la función dentro del ListBox.

Código
  1. Call LoadHours(Me.txtFecha.Text, Me.txtTarjeta.Text, Me.lsbHoras)

El caso es que me dice: No coinciden los tipos.

Debes usar las interfaces en lugar de las clases asi puedes usar ByVal sin problemas... por ejemplo en JAVA (Que es el que me da de comer actualmente) yo uso List para cualquier clase que herede de esta y no tengo problemas...

Si no mal recuerdo en .Net es List...

Ducles Lunas!¡.
En línea

The Dark Shadow is my passion.
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como meter un listbox en una tabla de listbox
.NET (C#, VB.NET, ASP)
CrÄsH 3 6,296 Último mensaje 16 Enero 2009, 15:53 pm
por MANULOMM
ByVal y ByRef
Programación Visual Basic
NaK-32 5 4,096 Último mensaje 27 Febrero 2011, 00:56 am
por NaK-32
problemas con byref!
Programación Visual Basic
x64core 2 1,483 Último mensaje 3 Agosto 2011, 19:10 pm
por x64core
Pasar listbox a textbox al hacer click en un valor del listbox
.NET (C#, VB.NET, ASP)
BrokerJoker 3 23,452 Último mensaje 13 Mayo 2012, 17:13 pm
por BrokerJoker
guardar objecto en fichero « 1 2 »
Java
betikano 13 6,698 Último mensaje 24 Mayo 2014, 18:48 pm
por betikano
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines