Página 1 de 1

Marquee (letreiro outra versão)

Enviado: 02 Mai 2014 20:05
por asimoes

Código: Selecionar todos

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

Código: Selecionar todos

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