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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Error de código
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error de código  (Leído 10,170 veces)
doggyinline

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Error de código
« en: 12 Abril 2008, 18:40 pm »

Bueno, la questión es que me estoy iniciando en esto de la programación y hoy he intentado hacer una calculadora con el Visual Basic siguiendo la guia de la revista HackxCrack (que, por cierto, me ha parecido muy buena para los que queremos iniciarnos en esto). La calculadora tiene 4 teclas para las operaciones, 1 para el igual, 10 para los números y un cuadro de texto. La cuestión es que cuando le meto esta linia te código (siguiendo la guia) que se debe activar al clicar el boton de igual:

Citar
Private Sub CmdIgual_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdIgual.Click
        If StrOper = "+" Then
            TxtOper = LngValor + TxtOper.Text
        End If
        If StrOper = "-" Then
            TxtOper = LngValor - TxtOper.Text
        End If
        If StrOper = "*" Then
            TxtOper = LngValor * TxtOper.Text
        End If
        If StrOper = "/" Then
            TxtOper = LngValor / TxtOper.Text
        End If
    End Sub
Para cada una de las expresiones en rojo me da este error:

-Un valor de tipo 'Double' no se puede convertir en 'System.Windows.Forms.TextBox'.

Y no entiendo que cojones quiere decir ese error xD. Espero que alguien me pueda ayudar. Os suplico que me lo expliqueis bien, porque aún soy muy nuevo y me cuesta entender... Muchar gracias!!

*Si hace falta algun dato mas avisadme ;)


En línea

~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: Error de código
« Respuesta #1 en: 12 Abril 2008, 18:44 pm »

Si, hace falta un dato mas, q compilador de VB usas, VB6 o Net, por q me da a mi q estas intentando compilar un codigo de VB6 con un compilador para net...


En línea

doggyinline

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Error de código
« Respuesta #2 en: 12 Abril 2008, 18:49 pm »

Yee, eres el primero que me contesta que parece saber de que va ;) (y eso que ya he posteado en tres foros).

Uso el Microsoft Visual Basic 2008 Express (y creo que por el tiempo en que escribieron este manual, aún no existia ni el VB6). Lo que no se es si el 2008 es .net o no...

Gracias por responder tan rápidamente ;)
En línea

seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Error de código
« Respuesta #3 en: 12 Abril 2008, 19:24 pm »

Hola doggyinline ,tendrias que poner todo el codigo,no se pero algo mal en las declaraciones de variables..aca tenes una calculadora en .NET..

Calculadora

seguro te lo va a convertir al programa porque vos tenes la version mas nueva y este esta hecha con una mas vieja,pero es de una version .NET a si que no debe haber problemas de conversion...


Cita de: doggyinline
Lo que no se es si el 2008 es .net o no...

despues del visual basic 6(1998) se empezo a llamar .NET el visual basic,la version 2002/2003 de .NET es la version 7 del visual basic ,la 2005 es la version 8 ,y ahora la que vos tenes la 2008 es la 9..

saludos.
« Última modificación: 12 Abril 2008, 19:26 pm por seba123neo » En línea

doggyinline

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Error de código
« Respuesta #4 en: 12 Abril 2008, 19:28 pm »

Vale, gracias, ahora ya se que mi versión es .net
Ahorá probaré tu calculadora (pero no quiero tener una calculadora, sinó saber hacerla jeje) EDITO: Gracias a eso ya no me sale el error, he modificado el código y he metido Int delante de la segunda parte de la operación.

Citar
Private Sub CmdIgual_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdIgual.Click
        If StrOper = "+" Then
            TxtOper = LngValor + Int(TxtOper.Text)
        End If
        If StrOper = "-" Then
            TxtOper = LngValor - Int(TxtOper.Text)
        End If
        If StrOper = "*" Then
            TxtOper = LngValor * Int(TxtOper.Text)
        End If
        If StrOper = "/" Then
            TxtOper = LngValor / Int(TxtOper.Text)
        End If
    End Sub

Pero ahora el problema aparece cuando pruebo el programa. Va todo bien hasta que pulso igual, entonces no aparece el resultado y me sale un cuadro diciendo que: No se controló InvalidCastExeption y me pone el mismo error que antes.

Ahi os dejo todo el código.
Citar
Public Class Form1
    Dim Variable As String
    Dim StrOper As String
    Dim LngValor As Long

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        MsgBox("Gracias por usar mi calculadora")
    End Sub

    Private Sub CmdIgual_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdIgual.Click
        If StrOper = "+" Then
            TxtOper = LngValor + Int(TxtOper.Text)
        End If
        If StrOper = "-" Then
            TxtOper = LngValor - Int(TxtOper.Text)
        End If
        If StrOper = "*" Then
            TxtOper = LngValor * Int(TxtOper.Text)
        End If
        If StrOper = "/" Then
            TxtOper = LngValor / Int(TxtOper.Text)
        End If
    End Sub

    Private Sub Cmd0_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmd0.Click
        TxtOper.Text = TxtOper.Text & "0"
    End Sub

    Private Sub Cmd1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmd1.Click
        TxtOper.Text = TxtOper.Text & "1"
    End Sub

    Private Sub Cmd2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmd2.Click
        TxtOper.Text = TxtOper.Text & "2"
    End Sub

    Private Sub Cmd3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmd3.Click
        TxtOper.Text = TxtOper.Text & "3"
    End Sub

    Private Sub Cmd4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmd4.Click
        TxtOper.Text = TxtOper.Text & "4"
    End Sub

    Private Sub Cmd5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmd5.Click
        TxtOper.Text = TxtOper.Text & "5"
    End Sub

    Private Sub Cmd6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmd6.Click
        TxtOper.Text = TxtOper.Text & "6"
    End Sub

    Private Sub Cmd7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmd7.Click
        TxtOper.Text = TxtOper.Text & "7"
    End Sub

    Private Sub Cmd8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmd8.Click
        TxtOper.Text = TxtOper.Text & "8"
    End Sub

    Private Sub Cmd9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmd9.Click
        TxtOper.Text = TxtOper.Text & "9"
    End Sub

    Private Sub CmdMultiplicacion_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdMultiplicacion.Click
        StrOper = "*"
        LngValor = TxtOper.Text
        TxtOper.Text = ""
    End Sub

    Private Sub CmdSuma_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdSuma.Click
        StrOper = "+"
        LngValor = TxtOper.Text
        TxtOper.Text = ""
    End Sub

    Private Sub CmdResta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdResta.Click
        StrOper = "-"
        LngValor = TxtOper.Text
        TxtOper.Text = ""
    End Sub

    Private Sub CmdDivision_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdDivision.Click
        StrOper = "/"
        LngValor = TxtOper.Text
        TxtOper.Text = ""
    End Sub

    Private Sub TextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtOper.TextChanged

    End Sub
End Class

Gracias de antemano ;)
« Última modificación: 12 Abril 2008, 19:39 pm por doggyinline » En línea

~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: Error de código
« Respuesta #5 en: 12 Abril 2008, 19:54 pm »

A ver, lo primero, el manual de Hack x Crack es para VB6 no para net y este es el subforo de VB6 no de net, asi q te muevo el post :P

En cuanto al error es un problema de casting, usa parse y arreglado

Salu2 E0N

En línea

doggyinline

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Error de código
« Respuesta #6 en: 12 Abril 2008, 19:57 pm »

Citar
En cuanto al error es un problema de casting, usa parse y arreglado

Lo siento, pero me he quedado igual... os ruego que tengais paciencia conmigo, pues soy nobato en esto de progagramar ;)

¿Que es un problema de casting?
¿Que es parse?
En línea

elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Re: Error de código
« Respuesta #7 en: 12 Abril 2008, 21:06 pm »

Cambia esto:
Código:
Private Sub CmdIgual_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdIgual.Click
        If StrOper = "+" Then
            TxtOper = LngValor + Int(TxtOper.Text)
        End If
        If StrOper = "-" Then
            TxtOper = LngValor - Int(TxtOper.Text)
        End If
        If StrOper = "*" Then
            TxtOper = LngValor * Int(TxtOper.Text)
        End If
        If StrOper = "/" Then
            TxtOper = LngValor / Int(TxtOper.Text)
        End If
    End Sub

Por esto:
Código:
Private Sub CmdIgual_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdIgual.Click
        If StrOper = "+" Then
            TxtOper.Text = LngValor + Int(TxtOper.Text)
        End If
        If StrOper = "-" Then
            TxtOper.Text = LngValor - Int(TxtOper.Text)
        End If
        If StrOper = "*" Then
            TxtOper.Text = LngValor * Int(TxtOper.Text)
        End If
        If StrOper = "/" Then
            TxtOper.Text = LngValor / Int(TxtOper.Text)
        End If
    End Sub

En .Net no existe una propiedad por defecto como en VB6, que para los TextBox es Text, para los CommandButton es Caption.
En .Net se lo tienes que decir.

Entonces usas:
Código:
TxtOper.Text ="lo que quierass"

En lugar de:
Código:
TxtOper = "lo que quieras"
En línea

doggyinline

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Error de código
« Respuesta #8 en: 12 Abril 2008, 21:49 pm »

Pues si era eso, ya me funciona la calculadora perfectamente!! Muchisimas gracias. Gracias a vosotros he aprendido un poquito mas  ;D
En línea

elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Re: Error de código
« Respuesta #9 en: 12 Abril 2008, 22:01 pm »

Me alegro que te alla sido de ayuda.

Atte.
Mariano Malomo
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error en codigo C
Programación C/C++
Søra 8 4,800 Último mensaje 14 Diciembre 2010, 18:30 pm
por Garfield07
Error de facebook? (CODIGO)
Dudas Generales
rdzlcs 7 9,123 Último mensaje 29 Diciembre 2010, 17:47 pm
por Garfield07
¿Error código?
Programación C/C++
Constantinoplero 3 6,377 Último mensaje 3 Noviembre 2011, 22:39 pm
por Constantinoplero
error de codigo
PHP
Choclito 1 1,670 Último mensaje 22 Diciembre 2011, 01:21 am
por Keyen Night
error codigo de red
Dispositivos Móviles (PDA's, Smartphones, Tablets)
franci91 0 1,983 Último mensaje 3 Octubre 2012, 18:50 pm
por franci91
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines