Merci de me dire comment procéder pour mettre le procédure sous interruption et comment l'arréter ... si cela est possible bien sur

Code : Tout sélectionner
Structure timerarg
hwin.l
msg.l
idevent.l
systemtime.l
EndStructure
Global varglobale.l , timerarg.timerarg
Procedure fonctiontimer(hwin,msg,idEvent,systemtime);il faut toujours prendre 4 arguments
varglobale+1
timerarg\hwin=hwin;la fenêtre concernée (ici 0 car il n'y en a pas)
timerarg\msg=msg ;le message #WM_TIMER (aucun intérêt)
timerarg\idevent=idevent; l'identifiant du timer
timerarg\systemtime=systemtime; heure système en millisecondes
EndProcedure
#fois_par_seconde=20
If InitSprite() And OpenScreen(800,600,32,"Timer") And InitKeyboard()
timerid=SetTimer_(0,0,1000/#fois_par_seconde,@fonctiontimer())
Repeat
FlipBuffers()
ClearScreen(0,0,100)
If StartDrawing(ScreenOutput())
BackColor(0,0,100)
FrontColor(255,255,0)
Locate(20,20) : DrawText("Appuyez sur espace pour tuer le timer.")
Locate(20,50) : DrawText("varglobale "+Str(varglobale))
Locate(20,70) : DrawText("hwin "+Str(timerarg\hwin))
Locate(20,90) : DrawText("msg "+Str(timerarg\msg))
Locate(20,110) : DrawText("idevent "+Str(timerarg\idevent))
Locate(20,130) : DrawText("systemtime "+Str(timerarg\systemtime))
StopDrawing() : EndIf
ExamineKeyboard()
If KeyboardPushed(#pb_key_space) And timerid
KillTimer_(0,timerid)
timerid=0
EndIf
If KeyboardReleased(#pb_key_escape)
Break
EndIf
ForEver
EndIf
If timerid
KillTimer_(0,timerid)
EndIf
Si je ne me trompe pas, les prog en mode protégé ou virtuel utilisent le modèle mémoire "flat", non segmenté...NOTE: THIS EXAMPLE HAS TO BE COMPILED WITH LARGE MEMORY MODEL.