Usuario
Ayuda con TextBox

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
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ú
- Editado Willams Morales lunes, 15 de diciembre de 2014 4:42
-
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.
-
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ú
- Editado Willams Morales lunes, 15 de diciembre de 2014 5:17
-
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.
-
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ú