Академический Документы
Профессиональный Документы
Культура Документы
BajarTimer.zip
Tutorial.EstudiodelTimer.Pausa.
Presentacin
AunqueyalovimoseneltutorialTres_iguales,vamosainsistirenlaherramientaTimer.
ElTimeresuntemporizador.ElcdigoquetienedentrodesuSubrutinaserepitecadaciertoIntervaldetiempo.
SubTimer1_Tick
'Elcdigoqueponemosaqu
'serepitecontinuamentecadaIntervaldetiempo.
'ElIntervalesunapropiedaddelTimer
EndIf
ElTimernoesuncontrol"fsico"queaparezcaenelActivity.Ademslodebemoscrearenelcdigo,yaquenoexisteenel
Designer.
PrimeroentramosenelprogramaBasic4Android/Tools/RunAVDManager
LuegoenelAndroidSDKManager/Tools/ManageAVDs...
MarcamosunAVDName/ypulsamosStartyluegoLaunchparaabrirunemulador
Creamosloscontroles
BajarTimer.zip
Insertamosmediante
Designer/AddView
SeekBar1Maxvalue=1000'1000
milisegundossonunsegundo
Label1
Label2
GuardamoselDesigner:
File/Save:Layout
ConectamoselDesigneralemulador.
Tools/Connect
UnavezcargadoelDesignerenelemulador,podemos
ubicarloscontrolesdondequeramos.
__________________________________
CdigodelprogramaTimer
'Activitymodule
SubProcess_Globals
'JuanAntonioVillalpando
'juana1991@yahoo.com
'Creaeltemporizador
DimTimer1AsTimer
EndSub
SubGlobals
DimtiempoAsInt
DimcambiaAsBoolean
cambia=True
DimSeekBar1AsSeekBar
DimLabel1,Label2AsLabel
Timer1.Initialize("Timer1",500)'1000=1segundo
Timer1.Enabled=True
EndSub
SubActivity_Create(FirstTimeAsBoolean)
Activity.LoadLayout("Layout")
EndSub
SubSeekBar1_ValueChanged(ValueAsInt,UserChangedAsBoolean)
tiempo=SeekBar1.Value
Label1.text=tiempo
Timer1.Interval=tiempo
EndSub
SubTimer1_Tick
'Cadavezquepasan100milisegundos
IfcambiaThen
Label2.Color=Colors.Blue
cambia=Not(cambia)
Else
Label2.Color=Colors.Red
cambia=Not(cambia)
EndIf
EndSub
Comentariodelprograma.
HecreadounavariableBooleanllamadacambia,estavariablesolotienedosvalores:TrueyFalse.Puedocambiardeun
valoraotromediante:
cambia=Not(cambia)
Deestamaneracambiavalelocontrarioquesuvaloranterior.
TambinhecreadoelTimer1enlaSubProcessGlobalyenlaGlobal.HeInicializadosuIntervalyloheactivado
medianteEnabled=True.
Timer1.Enabled=Falsepararaeltemporizador
AlmoverelScroll(SeekBar1),cambiasuValue.SuValueloasignoatiempo.tiempoloasignoalIntervaldelTimer.Ylo
pongoenlaetiquetaLabel1.
CadaciertoInterval,elprogramarealizaalSubrutinaTimer_Tick
EnestaSubrutina,seconsultaelvalordecambia.
Sicambia=TrueEntonces
elLabel2seponeAzul.
Encasocontrario
elLabel2seponeRojo.
Ademsenlosdoscasosponeelcambiaalocontrarioqueestabamediante:
cambia=Not(cambia)
(Sepodrahaberpuestounsolocambia=Not(cambia)despusdelEndIf)
IfcambiaThen
Label2.Color=Colors.Blue
Else
Label2.Color=Colors.Red
EndIf
cambia=Not(cambia)
__________________________________
Otrocdigodeintermitente.
Otroejemplodeintermitente.EnestecasoutilizounCanvas,estepuedecontenerelementosgrficos.
Loscontrolesestncreadosmedianteelcdigo,notieneLayout.
CdigodelprogramaTimer
'JuanAntonioVillalpando
'juana1991@yahoo.com
'Intermitente.
SubProcess_Globals
EndSub
SubGlobals
DimPanel1AsPanel
DimCanvas1AsCanvas
DimSeekBar1AsSeekBar
DimcambiaAsBoolean
cambia=True
DimTimer1AsTimer
EndSub
SubActivity_Create(FirstTimeAsBoolean)
'CreaunPanel
Panel1.Initialize("Panel1")
Activity.AddView(Panel1,0,0,100%x,100%y)
'CreaunCanvas1enelPanel
Canvas1.Initialize(Panel1)
Canvas1.DrawCircle(100,100,90,Colors.Blue,True,3dip)
'Creaetiquetadealcance
SeekBar1.Initialize("SeekBar1")
SeekBar1.Max=2000
Panel1.AddView(SeekBar1,5,350,200,50)
'CreaTimer
Timer1.Initialize("Timer1",1000)'1000=1segundo
Timer1.Enabled=True
EndSub
SubActivity_Resume
EndSub
SubSeekBar1_ValueChanged(ValueAsInt,UserChangedAsBoolean)
Timer1.Interval=Value
EndSub
SubTimer1_Tick
IfcambiaThen
Canvas1.DrawCircle(100,100,90,Colors.Red,True,3dip)
Else
Canvas1.DrawCircle(100,100,90,Colors.Blue,True,3dip)
EndIf
cambia=Not(cambia)
Canvas1.Initialize(Panel1)
EndSub
__________________________________
Temporizador.Pausa.Sleep.
OtracosadistintaserahacerunaPausa,esdecirqueelprogramaquedarapausadounosmomentos,paraellosesuele
utilizarestaSubrutina...
SubPausa(segundosAsLong)
DimnowAsLong
now=DateTime.Now
DoUntil(DateTime.Now>now+(segundos*1000))
DoEvents
Loop
EndSub
EstaSubrutinasueleiralfinaldelcdigo.
Encualquierpartedelcdigopodemosllamaraestafuncindelamanera...
Pausa(3)'Estoharunapausade3segundos.
LafuncinPausa,loquehaceestomarelinstanteactual(Now)yestarhaciendounbuclehastaquesesupereeltiempodel
momentoenquecomenzlafuncinmseltiempoagregadoalafuncin(segundos).now+segundos
Sehamultiplicadopor1000,porqueelNowdevuelveeltiempoenmilisegundos.
ElDoEvents,permitequesepuedanrealizarotroseventos(porejemplo,pulsarunatecla...)mientrasestenelbucle.
__________________________________