Autor Tema: Vb.NET 2008 Duda con asignación de datos  (Leído 5635 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jonathanPIC888

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 326
Vb.NET 2008 Duda con asignación de datos
« en: 13 de Julio de 2010, 16:51:49 »
Hola a todos , en mi desarrollo de aplicaciones para USB he tenido algunas complicaciones básicas sobre la programación y quería saber si me podrían brindar ayuda.
Mi problema es el siguiente:
Tengo una serie de TextBox en Visual Basic.NET 2008 que tienen que pasar el valor que introduce el usuario a variables dentro del programa, pero la dificultad se me presenta cuando
quiero asignarle el valor me presenta una excepción con un error que dice lo siguiente:
Error 1 La referencia a un miembro no compartido requiere una referencia de objeto. C:\Documents and Settings\Flia. Moyano\Escritorio\ELECTRONICA\EJERCICIOS HID VB.net\EJERCICIO Nº 1 HID\Form1.vb 3 39 EJERCICIO Nº 1 HID

acá la porción de código
Código: vb.net
  1. Private Const VendorID As Short = Vid_dispositivo.Text
yo necesito que lo que el usuario ponga en el cuadro de texto ( que es un valor hexadecimal ) lo asigne a la variable VendorID.

Si alguien me puede dar una mano le estaré agradecido  :-/

Desconectado Gonzalo_BlackHawk

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 519
Re: Vb.NET 2008 Duda con asignación de datos
« Respuesta #1 en: 13 de Julio de 2010, 23:12:12 »
Hola Jonathan:

Estas queriendo asignar un valor variable a una constante, por eso seguramente el error (aunque con tan poco del código es díficil saberlo). Además la propiedad Text es un tipo de datos string y estas queriendolo colocar en una variable short (Si no tienes el Option Strict en ON no te va a dar error porque el compilador trata de convertirlo automáticamente, lo cual no siempre da los resultados que uno quiere). Finalmente, el tipo Short no te va a alcanzar para almacenar el VID, porque aunque los dos son datos de 2 bytes, el short tiene signo y el VID es sin singo, asi que vas a tener que utilizar el tipo Integer de 4 bytes.

Para asignar el texto ingresado a una variable numerica coloca el siguiente código dentro de un procedimiento o función:

Código: [Seleccionar]
Dim VendorID as Integer

VendorID = CInt(Val("&H" & Vid_dispositivo.text))

Ya nos cuentas si te ha funcionado. Saludos.

"Siempre piensa si el jugo vale la exprimida..."

"La muerte esta tan segura de vencer que nos da toda una vida de ventaja."

Desconectado jonathanPIC888

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 326
Re: Vb.NET 2008 Duda con asignación de datos
« Respuesta #2 en: 14 de Julio de 2010, 10:52:07 »
Muchas gracias por la ayuda ya lo pude solucionar ahora sigo con mi proyecto  :-/ :-/ :-/
Un saludo !!

Desconectado willynovi

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 546
Re: Vb.NET 2008 Duda con asignación de datos
« Respuesta #3 en: 14 de Julio de 2010, 10:58:13 »
y cual fue la solución? asi por si alguien tiene el mismo problema. :mrgreen:
Intento enseñarte a pescar, si solo quieres pescados, espera que un pescador te regale los suyos.

Desconectado jonathanPIC888

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 326
Re: Vb.NET 2008 Duda con asignación de datos
« Respuesta #4 en: 14 de Julio de 2010, 12:57:29 »
Lo pongo acá tambien para que todos lo vean  :mrgreen:

Bueno dale les cuento 
1º - El problema era debido a algo básico relacionado a la programación en general: No podemos asignarle a una variable declarada un valor nulo o que aún no se ha cargado, he aquí el error en si   :z)

2º - Las variables short, si pueden tomar datos de un texbox aunque los mismo entreguen strings.

3º - Solución entonces : Al no poder cargar una variable con un valor aún no estipulado por el usuario, entonces nos ayudamos del evento TextChanged con esto elimanos este error y los datos se asignan siempre y cuando el evento ocurra; es decir cuando el usuario cargue elementos al TexBox.

Les muestro como se hace entonces.

Nosotros teniamos la siguiente variable entera de 16 bits con signo.
Código: vb.net
  1. Dim VendorID As Short

luego le cargamos datos en cuanto el usuario dispare el evento de cambios en el texbox:

Código: vb.net
  1. Private Sub Vid_dispositivo_TextChanged(ByVal sender As System.Object, ByVal As System.EventArgs) Handles Vid_dispositivo.TextChanged
  2.         VendorID = (Val(Vid_dispositivo.Text))
  3.     End Sub

y problema más que solucionado   :-/ :-/

Espero que les sirva !

Desconectado willynovi

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 546
Re: Vb.NET 2008 Duda con asignación de datos
« Respuesta #5 en: 14 de Julio de 2010, 15:13:54 »
Jonathan, ahora seeeee. :P

Gracias che, ;-)
Intento enseñarte a pescar, si solo quieres pescados, espera que un pescador te regale los suyos.