none
Ayuda con TextBox RRS feed

  • Pregunta

  • Ok, buenos días, estimado experto.

    Tengo un pequeño percance con el siguiente código:

    Const INTERVALO_EN_MINUTOS As Integer = 60


    Lo que quiero hacer es lo siguiente:

    Const INTERVALO_EN_MINUTOS As Integer = Texbox2.Text

    Quiero poder modificar el valor desde una TextBox pero no me funciona, dice que se requiere una constante.

    Lo he puesto de las siguientes maneras:

    Const INTERVALO_EN_MINUTOS As Integer = (TextBox2.Text)
    Const INTERVALO_EN_MINUTOS As Integer = TextBox2.Text

    Y no me va, no funca.

    Si alguno de ustedes me pudiera ayudar se los agradecería mucho.


    • Editado Jecsham lunes, 15 de diciembre de 2014 4:32 título
    lunes, 15 de diciembre de 2014 3:52

Todas las respuestas

  • Hola,

    Veo que estás muy confundido con conceptos básicos de constantes y variables. Pero los pondré en evidencia para que no tengas problemas futuros

    CONSTANTES.

    Una constante es otro tipo de campo. Contiene un valor que se asigna cuando se compila el programa y nunca cambia después.

    VARIABLES.

    Una variable representa un valor numérico o de cadena o un objeto de una clase. El valor que la variable almacena puede cambiar, pero el nombre sigue siendo el mismo.

    De acuerdo, como verás lo que intentas realizar no es posible, ya que el valor de la constante se asigna al momento de compilar y no en tiempo de ejecución como intentas  hacer.

    Lo que debes de hacer es usar variables, que su valor puede cambiar en tiempo de ejecución.

    Dim INTERVALO_EN_MINUTOS As Integer = (TextBox2.Text)

    __________________________________________________________________________________________________
    Espero haberte ayudado con mi sugerencia, si te fue útil no olvides marcarla como respuesta.

    Willams Morales P.
    Arequipa - Perú



    lunes, 15 de diciembre de 2014 4:41
  • Hola Willams, he puesto el código que me has proporcionado y no me lo acepta:

    Dim INTERVALO_EN_MINUTOS As Integer = (TextBox2.Text)

    Dice: "Error de compilación: Se esperaba: fin de la instrucción"

    PD: Es un Option Explicit, no un Private Sub.

    PD2: Lenguaje VB6

    Saludos.

    lunes, 15 de diciembre de 2014 4:57
  • Discúlpame, con VB6 no puedes declarar y asignar como en .NET

    Entonces esto queda así

    Dim INTERVALO_EN_MINUTOS As Integer

    Para este caso imagino que quieres asignar el valor del textbox2 a la variable cuando el textbox haya cambiado de valor y esto lo consigues con el evento Change.

    Public Sub TextBox2_Change()
      If Trim((TextBox2.Text)) <> "" Then
        INTERVALO_EN_MINUTOS = CInt(TextBox2.Text)
      Else
        INTERVALO_EN_MINUTOS = 0
      End If
    End Sub
    


    __________________________________________________________________________________________________
    Espero haberte ayudado con mi sugerencia, si te fue útil no olvides marcarla como respuesta.

    Willams Morales P.
    Arequipa - Perú




    lunes, 15 de diciembre de 2014 5:07
  • Vale, la verdad soy nuevo en esto y no me arranca xD esto es lo que tengo:

    Option Explicit
    
    ' El código que me has dado
    Dim INTERVALO_EN_MINUTOS As Integer
    
    Private Sub Form_Load()
    Timer1.Interval = 1000
    INTERVALO_EN_MINUTOS = CInt(TextBox2.Text) 'Código que me has dado.
    End Sub
    
    Private Sub cmdDetener_Click()
    Timer1.Enabled = False
    End Sub
    
    Private Sub cmdEmpezar_Click()
    Timer1.Enabled = True
    End Sub
    
    Private Sub Label2_Click()
    Dim pag As String
    pag = "http://adf.ly/2290876/wbotplusplus"
    Shell "Explorer " & pag
    End Sub
    
    Private Sub TextBox1_Change()
    
    End Sub
    
    Private Sub TextBox2_Change()
    INTERVALO_EN_MINUTOS = CInt(TextBox2.Text) 'Código que me has dado.
    End Sub
    
    Private Sub Timer1_Timer()
    ' variable estática para acumular la cantidad de segundos
    Static Temp_Seg As Long
    ' incrementa
    Temp_Seg = Temp_Seg + 1
    ' comprueba que los segundos no sea igual a la cantidad de minutos _
      que queremos , en este caso 5 minutos
    If (Temp_Seg * 60) >= (INTERVALO_EN_MINUTOS * 60) * 60 Then
       ' reestablece
       Temp_Seg = 0
    SendKeys TextBox1.Text
    SendKeys "{ENTER}"
    End If
    End Sub
    

    Saludos.

    lunes, 15 de diciembre de 2014 5:31
  • Hola... Cuando mencionas que no arranca es porque te sale algún error?. Es bueno que hagas mención de lo que ocurre para que las respuestas sean inmediatas. Pero veamos, revisaré todas las líneas del código para ver donde tuviste el problema.

    "Desenpolve" mi VB6 y te dejo el código probado y validado.

    Option Explicit
    
    'Declaras la variable
    Dim INTERVALO_EN_MINUTOS As Integer
    
    Private Sub Form_Load()
        
        'Inicializas el intervalo del Timer
        Timer1.Interval = 1000
        Timer1.Enabled = False
        
        'Inicializas la propiedad Text en 0 del textbox2
        TextBox2.Text = 0
        
        'Asignas el valor de textbox2 a la variable
        INTERVALO_EN_MINUTOS = CInt(TextBox2.Text)
        
    End Sub
    
    Private Sub cmdDetener_Click()
        
        Timer1.Enabled = False
        
    End Sub
    
    Private Sub cmdEmpezar_Click()
        
        Timer1.Enabled = True
        
    End Sub
    
    Private Sub TextBox2_Change()
        
        If Trim((TextBox2.Text)) <> "" Then
          INTERVALO_EN_MINUTOS = CInt(TextBox2.Text)
        Else
          INTERVALO_EN_MINUTOS = 0
        End If
        
    End Sub
    
    Private Sub Timer1_Timer()
        
        'Variable estática para acumular la cantidad de segundos
        Static Temp_Seg As Long
    
        'Incrementa 1 por cada segundo
        Temp_Seg = Temp_Seg + 1
    
        'Comprueba que los segundos no sea igual a la cantidad de minutos _
        que queremos, en este caso 5 minutos
        If (Temp_Seg / 60) > INTERVALO_EN_MINUTOS Then
            Temp_Seg = 0
        End If
        
        'Para verificar el incremento de la variable Temp_Seg
        lblTest.Caption = Temp_Seg
        
    End Sub
    

    Esto lo hago porque usted me indica que está iniciando, espero poco a poco sepa valerse por sus capacidades y sólo tenga preguntas puntuales.

    __________________________________________________________________________________________________
    Espero haberte ayudado con mi sugerencia, si te fue útil no olvides marcarla como respuesta.

    Willams Morales P.
    Arequipa - Perú

    lunes, 15 de diciembre de 2014 8:10