señor
Publicado por Edward Carnby (1 intervención) el 30/05/2008 13:28:50
Hola.
Escribo esta nota porque ya no sé como hacer esto. Resulta que he programado un temporizador que manda mensajes a un textbox, simulando una respuesta humana. Yo regulo el intérvalo de envío de mensajes (se supone que el ordenador te contesta según le digas. Es un juego de cartas). Bien, cuando mando el primer mensaje al textbox me lo ignora, aun diciéndole que me de un retardo de 3 segundos, y me muestra el mensaje siguiente. Lo que quiero es mandar un mandar un mensaje al textbox, que pase un tiempo (en segundos) especificado por mí. A ver si alguien me puede echar una mano, por favor. Os dejo el código fuente del procedimiento, así como tres o cuatro líneas donde lo llamo.
Desde aquí (MostrarMensajesPepe) llamo a la función.
Call MostrarMensajesPepe(msjSalePepe, 0) -> Este mensaje no me sale en el textbox
intValorEnvitePepe = 31
Select Case intValorEnvitePepe
Case 29 To 31
'* PEPE ENVIDA *
Call MostrarMensajesPepe(msjPepeEnvida, 4) -> Este mensaje si que me sale en el textbox.
Y esta es la implementación de la función.
Private Sub MostrarMensajesPepe(strMensaje As String, vntSegundos As Variant)
Dim x As Integer, dtmHoraInicial As Variant, dtmHoraFinal As Variant
Static udfMensajes(10) As MENSAJE
For x = 1 To 10
If udfMensajes(x).Texto = "" Then
udfMensajes(x).Texto = strMensaje
udfMensajes(x).Retardo = vntSegundos
udfMensajes(x).HoraInicial = Format(Time, "hh:mm:ss")
udfMensajes(x).HoraFinal = Format((DateAdd("s", udfMensajes(x).Retardo, udfMensajes(x).HoraInicial)), "hh:mm:ss")
x = 10
End If
Next x
For x = 1 To 10
If udfMensajes(x).Mostrado = False Then
txtMensajes.Text = udfMensajes(x).Texto
udfMensajes(x).Mostrado = True
Do While udfMensajes(x).HoraInicial < udfMensajes(x).HoraFinal
udfMensajes(x).HoraInicial = Format(Time, "hh:mm:ss")
Loop
x = 10
End If
Next x
If udfMensajes(10).Mostrado = True Then
For x = 1 To 10
udfMensajes(x).Texto = ""
udfMensajes(x).Retardo = 0
udfMensajes(x).HoraInicial = 0
udfMensajes(x).HoraFinal = 0
udfMensajes(x).Mostrado = False
Next x
End If
End Sub
Como podeis ver, he hecho hasta una cola de mensajes (la he probado y funciona) pero no consigo arreglar lo del maldito TEXTBOX. He probado a cambiar la frecuencia del prime mensaje y nada. Si alguien puede ayudarme, lo agradecería.
Escribo esta nota porque ya no sé como hacer esto. Resulta que he programado un temporizador que manda mensajes a un textbox, simulando una respuesta humana. Yo regulo el intérvalo de envío de mensajes (se supone que el ordenador te contesta según le digas. Es un juego de cartas). Bien, cuando mando el primer mensaje al textbox me lo ignora, aun diciéndole que me de un retardo de 3 segundos, y me muestra el mensaje siguiente. Lo que quiero es mandar un mandar un mensaje al textbox, que pase un tiempo (en segundos) especificado por mí. A ver si alguien me puede echar una mano, por favor. Os dejo el código fuente del procedimiento, así como tres o cuatro líneas donde lo llamo.
Desde aquí (MostrarMensajesPepe) llamo a la función.
Call MostrarMensajesPepe(msjSalePepe, 0) -> Este mensaje no me sale en el textbox
intValorEnvitePepe = 31
Select Case intValorEnvitePepe
Case 29 To 31
'* PEPE ENVIDA *
Call MostrarMensajesPepe(msjPepeEnvida, 4) -> Este mensaje si que me sale en el textbox.
Y esta es la implementación de la función.
Private Sub MostrarMensajesPepe(strMensaje As String, vntSegundos As Variant)
Dim x As Integer, dtmHoraInicial As Variant, dtmHoraFinal As Variant
Static udfMensajes(10) As MENSAJE
For x = 1 To 10
If udfMensajes(x).Texto = "" Then
udfMensajes(x).Texto = strMensaje
udfMensajes(x).Retardo = vntSegundos
udfMensajes(x).HoraInicial = Format(Time, "hh:mm:ss")
udfMensajes(x).HoraFinal = Format((DateAdd("s", udfMensajes(x).Retardo, udfMensajes(x).HoraInicial)), "hh:mm:ss")
x = 10
End If
Next x
For x = 1 To 10
If udfMensajes(x).Mostrado = False Then
txtMensajes.Text = udfMensajes(x).Texto
udfMensajes(x).Mostrado = True
Do While udfMensajes(x).HoraInicial < udfMensajes(x).HoraFinal
udfMensajes(x).HoraInicial = Format(Time, "hh:mm:ss")
Loop
x = 10
End If
Next x
If udfMensajes(10).Mostrado = True Then
For x = 1 To 10
udfMensajes(x).Texto = ""
udfMensajes(x).Retardo = 0
udfMensajes(x).HoraInicial = 0
udfMensajes(x).HoraFinal = 0
udfMensajes(x).Mostrado = False
Next x
End If
End Sub
Como podeis ver, he hecho hasta una cola de mensajes (la he probado y funciona) pero no consigo arreglar lo del maldito TEXTBOX. He probado a cambiar la frecuencia del prime mensaje y nada. Si alguien puede ayudarme, lo agradecería.
Valora esta pregunta


0