canal visual basic .net

Recursos Visual Basic.NET, VB.NET, Manuales de programación, Tutoriales, Foros de programación, Comunidad de programadores

Usuarios activos:  30

Foros de programación, recursos, tutoriales, sistemas operativos...

Bienvenido a la zona de foros. Participa en alguno de nuestros foros: Foros de visual basic, foros de visual basic.net foros de Crystal reports, programas gratis, foros de C++ - C# , foros de Java, foros de PHP, foros de ASP.net. Seguro que hay un foro que te servirá de gran utilidad y si no lo encuentras avísanos y crearemos uno nuevo.
Resultados 1 al 5 de 5
Árbol de 1"Me Gusta"
  • 1 Mensaje Por lareost

Tema: Ayuda con un error

  1. #1
    zack69 está desconectado Junior Member Iniciad@
    Fecha de ingreso
    02 jul, 12
    Mensajes
    7

    Unhappy Ayuda con un error

    Hola, queria pedirles ayuda con un error que me da un programa. En este ingreso una palabra, y al hacer click la desglosa en varios textbox. Pero cada letra debe ser mostrada cada un segundo (como en cámara lenta ), para eso uso un timer. Este es el error:

    Código:
    Public Class Form1
        Dim cont As Integer
        Dim palabraAux As String
        Dim txts() As TextBox = {TextBox2, TextBox3, TextBox4, TextBox5, TextBox6, TextBox7, TextBox8, TextBox9, TextBox10}
        Dim strTextbox As String
        Private Sub BotonComenzar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BotonComenzar.Click
            Dim cant_letras As Integer, x As Integer
            cant_letras = Len(Palabra.Text)
            If Trim(cant_letras) = 0 Then Exit Sub
            palabraAux = Palabra.Text
            For x = 0 To Len(palabraAux)
                txts(x).Text = "" 'Error: Referencia a objeto no establecida como instancia de un objeto.
            Next x
            cont = 0
            Tiempo.Enabled = True
        End Sub
        Private Sub Tiempo_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tiempo.Tick
            txts(cont).Text = Mid(palabraAux, cont + 1, 1)
            cont = cont + 1
            If cont = Len(Palabra.Text) Then
                Tiempo.Enabled = False
                cont = 0
            End If
        End Sub
    End Class
    Espero que puedan ayudarme a corregir el error lo mas pronto que puedan, porque apenas estoy comenzando con VB.Net y no entiendo mucho :S
    Desde ya gracias!

  2. #2
    Avatar de tux2003
    tux2003 está desconectado Senior Member Avanzad@
    Fecha de ingreso
    06 mar, 10
    Ubicación
    Puebla, México
    Mensajes
    177

    Predeterminado Hola...

    Eso ocurre porque tu apuntador (Indice) esta haciendo referencia a un objeto que no existe!!! Si tu palabra tiene 20 caracteres te marcara el error pues solo tienes 9 Textbox, tu cadena debe ser máximo de 9 caracteres y tu ciclo for debe ir de 0 a 8 o en su defecto de 0 a Len(Cadena)-1 Ammm no se si me explico pero por ahi va tu problema saludos cordiales


    ICC Jairo Arturo Segura Morales244 1008757, 222 3517731 | arturo_alpha72@hotmail.com

  3. #3
    zack69 está desconectado Junior Member Iniciad@
    Fecha de ingreso
    02 jul, 12
    Mensajes
    7

    Unhappy

    Cita Iniciado por tux2003 Ver mensaje
    Eso ocurre porque tu apuntador (Indice) esta haciendo referencia a un objeto que no existe!!! Si tu palabra tiene 20 caracteres te marcara el error pues solo tienes 9 Textbox, tu cadena debe ser máximo de 9 caracteres y tu ciclo for debe ir de 0 a 8 o en su defecto de 0 a Len(Cadena)-1 Ammm no se si me explico pero por ahi va tu problema saludos cordiales
    Gracias por tu ayuda amigo. mira que hice lo que me dijiste, pero me da el mismo error. Emmm puse el ciclo for como me indicaste, y en la propiedad maxlenght de textbox de ingreso puse 9. Pero el error sigue :s . No se que mas hacer, me ayudas?

    Saludos! y gracias otra vez

  4. #4
    lareost está desconectado Senior Member Avanzad@
    Fecha de ingreso
    15 sep, 11
    Mensajes
    137

    Predeterminado

    A mi me parece que tu codigo no puede funcionar de ninguna de las maneras debido a esto:
    Código:
    If Trim(cant_letras) = 0 Then Exit Sub
    Ademas:
    Código:
    Private txts() As TextBox
    
    ' Constructor del formulario
    Sub New()
        InitializeComponent()
        '---------------------------------------------------------------------------------------------------
        ' Iniciar la matriz 
        txts = {TextBox2, TextBox3, TextBox4, TextBox5, TextBox6, TextBox7, TextBox8, TextBox9, TextBox10}
        '---------------------------------------------------------------------------------------------------
    End Sub
    
    Private Sub BotonComenzar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BotonComenzar.Click
        
        Dim cant_letras As Integer = Palabra.Text.Trim.Length - 1
        If cant_letras < 0 OrElse cant_letras > txts.GetUpperBound(0) Then
            Exit Sub
        End If
    
        For x As Integer = 0 To cant_letras
        	txts(x).Text = ""
        Next
    
        cont = 0
        Tiempo.Enabled = True
    End Sub
    A zack69 le gusta esto.

  5. #5
    zack69 está desconectado Junior Member Iniciad@
    Fecha de ingreso
    02 jul, 12
    Mensajes
    7

    Smile

    [QUOTE=lareost;58384]A mi me parece que tu codigo no puede funcionar de ninguna de las maneras debido a esto:
    Código:
    If Trim(cant_letras) = 0 Then Exit Sub
    Gracias por tu ayuda "lareost"
    aun no entiendo mucho de constructores y todo eso. Me lo explicaste muy bien, ya me quedo en claro el tema. Gracias otra vez!
    Mis saludos para ti.

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
Visual Studio .VisualBasic.net .ADO.NET .ASP.NET .Framework .Crystal report
[Visual Basic .NET · Información legal · Condiciones de uso · Publicidad · Contacto · RSS novedades Foro · Inicio]
Un sitio web de Internelia (Ontecnia) © Copyright 2013 canalvisualbasic.net. Todos los derechos reservados