Necesito hacer un dialogo que cuando se abra empiece a emitir sonidos que se van incrementando hasta que se presione un boton del dialogo y el usuario pueda ver hasta donde escucho...
Lo que no se es como capturar la instruccion de parada mientras el ciclo de sonidos se esta ejecutando...
Alguna idea, debe ser algo muy facil, pero hoy amaneci con la mente dormida...
Gracias por su ayuda...
Adjunto el codigo que llevo hasta ahora.
Code: Select all
FUNC AUDIOMETRO()
LOCAL oDlg,oSAY,oFontBIG,oBtn,lStop:=.F.
LOCAL T:=0
LOCAL cSAY
DEFINE FONT oFontBIG NAME "Arial" SIZE 0,-50
DEFINE DIALOG oDlg RESOURCE "AUDIOMETRO"
REDEFINE SBUTTON oBtn ID 110 OF oDlg RESOURCE "X_ALTO" ACTION lStop:=.T. XP PROMPT "Alto" TEXT 4
REDEFINE SAY oSAY VAR cSAY ID 104 OF oDlg UPDATE COLOR CLR_HRED,CLR_BLACK FONT oFontBIG
DO WHILE T<1500 .AND. !lStop
T+=20
BEEP(T,1)
cSAY:=ALLTRIM(STR(T))+' Hz';oSAY:REFRESH();SYSREFRESH()
ENDDO
ACTIVATE DIALOG oDlg CENTER
RETU[]