FUNCTION MAIN()
@ 01,00 SAY PADC("TESTE COM MARQUEE",80) COLOR "W+/B*"
nKey:=0
DO WHILE nKey = 0
nKey:=Marquee("0123456789",.3,10,0)
ENDDO
RETURN Nil
FUNCTION Marquee(cString,nDelay,nRow,nCol)
LOCAL x:=0,;
nLeft:=0,;
cStr,;
n,;
cMarquee,;
nKey:=0
DEFAULT cString TO "TESTE",;
nDelay TO .5,;
nRow TO 0,;
nCol TO 0
nLeft:=MaxCol() + 2
x:=nCol
cStr:=""
n:=0
cMarquee:=""
lLinha:=.t.
DO WHILE X < nLeft .AND. nKey = 0
nKey:=Inkey()
IF Len(cStr) < Len(cString)
cStr+=IF(Len(cStr)<Len(cString),SubStr(cString,Len(cString)-N,1),"")
cMarquee:=CharMirr(cStr)
lLinha:=.T.
N++
ELSE
IF lLinha
X:=nCol+1
ENDIF
cMarquee:=cString
lLinha:=.F.
ENDIF
@ nRow,x-1 CLEAR TO nRow,x-1
IF lLinha
@ nRow,nCol SAY cMarquee
ELSE
@ nRow,x SAY cMarquee
ENDIF
hb_IdleSleep(nDelay)
x++
ENDDO
IF nKey <> 0
@ nRow,nCol CLEAR TO nRow,MaxCol()+1
ENDIF
RETURN nKey