Marquee (letreiro outra versão)

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Marquee (letreiro outra versão)

Mensagem 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
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Responder