Aplicación nº aleatorios se hace fantasma.
Publicado por latisfundo (12 intervenciones) el 17/01/2009 17:59:42
Hola.
Quiero construir una cadena con los números 1 a 12 de forma aleatoria.
En un formulario he puesto un textbox (Text1) y un botón (Command1) y les he dado este
código:
------------------------------------------------------
Option Explicit
Dim CadenaTot As String, Num As Long
Private Sub Command1_Click()
Do Until Len(CadenaTot) = 26 '(26 caracteres=longitud de los 12 números y las comas)
If CadenaTot = "" Then
CadenaTot = Trim(Str(Aleatorio))
Else
Num = Aleatorio
If InStr(CadenaTot, Trim(Str(Num))) = 0 Then 'Num no está en CadenaTot
CadenaTot = CadenaTot & "," & Trim(Str(Num))
End If
End If
DoEvents
Loop
Text1.Text = CadenaTot
End Sub
Private Function Aleatorio() As Long 'Da un nº aleatorio entre 1 y 12
Randomize ' inicializar la semilla
Aleatorio = CLng((1 - 12) * Rnd + 12)
End Function
Private Sub Form_Load()
CadenaTot = ""
End Sub
-------------------------------------------------------
El problema es el siguiente: A veces funciona perfectamente. Doy al botón y me aparecen los 12 números separados por comas en el textbox. Pero otras veces no funciona, no aparece nada en el textbox.
He probado a generar el ejecutable (proyecto1.exe) y pasa lo mismo. Además, cuando el ejecutable no funciona, si lo cierro y miro en el Administrador de tareas de Windows, sigue allí: "proyecto1 Activo" en la pestaña Aplicaciones.
Si alguien sabe que es lo que ocurre que me lo diga, por favor.
Gracias.
Quiero construir una cadena con los números 1 a 12 de forma aleatoria.
En un formulario he puesto un textbox (Text1) y un botón (Command1) y les he dado este
código:
------------------------------------------------------
Option Explicit
Dim CadenaTot As String, Num As Long
Private Sub Command1_Click()
Do Until Len(CadenaTot) = 26 '(26 caracteres=longitud de los 12 números y las comas)
If CadenaTot = "" Then
CadenaTot = Trim(Str(Aleatorio))
Else
Num = Aleatorio
If InStr(CadenaTot, Trim(Str(Num))) = 0 Then 'Num no está en CadenaTot
CadenaTot = CadenaTot & "," & Trim(Str(Num))
End If
End If
DoEvents
Loop
Text1.Text = CadenaTot
End Sub
Private Function Aleatorio() As Long 'Da un nº aleatorio entre 1 y 12
Randomize ' inicializar la semilla
Aleatorio = CLng((1 - 12) * Rnd + 12)
End Function
Private Sub Form_Load()
CadenaTot = ""
End Sub
-------------------------------------------------------
El problema es el siguiente: A veces funciona perfectamente. Doy al botón y me aparecen los 12 números separados por comas en el textbox. Pero otras veces no funciona, no aparece nada en el textbox.
He probado a generar el ejecutable (proyecto1.exe) y pasa lo mismo. Además, cuando el ejecutable no funciona, si lo cierro y miro en el Administrador de tareas de Windows, sigue allí: "proyecto1 Activo" en la pestaña Aplicaciones.
Si alguien sabe que es lo que ocurre que me lo diga, por favor.
Gracias.
Valora esta pregunta


0