Spanish Activar click mientras se ejecuta un do while

ivavilagu

Member
Licensed User
Longtime User
Hola a todos,
me he quedado encallado en la aplicación que estoy programando. Muestro un label en pantalla durante unos segundos. Para detener la ejecución utilizo un do/loop. Aquí el código:

B4X:
Dim actual As Long
actual=DateTime.Now+ 24000
DoWhileDateTime.Now < actual
      DoEvents
Loop

El problema es que durante esos 24 segundos el usuario debería poder clickar el label y quitarlo de la pantalla. Tengo un 'sub label_Click' pero por mucho que el usuario pulsa el label no se ejecuta el código del sub. Imagino que es porque se está ejecutando el do/loop.

¿Hay alguna forma de poder hacerlo?

Gracias.
 

ivavilagu

Member
Licensed User
Longtime User
Puedes utilizar un Timer, si pasan 24 segundos y no haces click que ejecute un código, mira este link

No me he expresado bien. Muestro un label en pantalla y el usuario, o bien puede esperar 24 segundos a que el label se oculte de forma automática (esto ya lo tengo hecho) o bien no quiera esperar ese tiempo y decida quitarlo por su cuenta clicando en el label. Esa es la parte no resuelta.
 

klaus

Expert
Licensed User
Longtime User
As vampirbcn already told you you should use a Timer to hide the Label.
With your code you slow down the system a lot.
This code will do it:
B4X:
Sub Process_Globals
    Dim Timer1 As Timer
End Sub

Sub Globals
    Dim lblTest As Label
End Sub

Sub Activity_Create(FirstTime As Boolean)
    lblTest.Initialize("lblTest")
    Activity.AddView(lblTest, 10dip, 10dip, 150dip, 50dip)
    lblTest.Text = "Test"
    lblTest.TextSize = 16
  
    Timer1.Initialize("Timer1", 24000)
    Timer1.Enabled = True
End Sub

Sub lblTest_Click
    lblTest.Visible = False
    Timer1.Enabled = False
End Sub

Sub Timer1_Tick
    lblTest_Click
End Sub
Best regards.
 

ivavilagu

Member
Licensed User
Longtime User
I changed the code using timers but for one reason I don´t understand the event label_click doesn´t run when I click over the label. These is the code:

B4X:
Sub Process_Globals
  dim time1 as timer
end sub

Sub Globals
  dim lbl2 as label
end sub

Sub Activity_Create(FirstTime As Boolean)
    introduccion
end sub

Sub introducción
  lbl2.Initialize("")
  Activity.AddView(lbl2, 5%x, 0, 90%x, 60%y)
  lbl2.text="Example"
  time1.Initialize("Time1", 12000)
  time1.Enabled = True
end sub

Sub time1_Tick
  lbl2_click
end sub

Sub lbl2_Click
  time1.enabled=false
      .
      .
      .
end sub


When the timer arrives to 12 seconds the label click event runs as well but through clicking the screen doesn´t work. Is there any problem with activity views?
 

ivavilagu

Member
Licensed User
Longtime User
Uppps, sorry

Problem solved. Thank you both!!
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…