Exemplo de banner (marquee) com hwgui.
*********************************************************************
* Programa : BANNER *
* Autor : Alexandre Simões *
* Data : 22/09/2013 *
* Descricao: Gerar animação tipo banner *
*********************************************************************
#include "hbcompat.ch"
#include "common.ch"
#include "set.ch"
#include "hwgui.ch"
FUNCTION Main
LOCAL oIconApp:=HIcon():AddResource("ICON_1")
LOCAL addX:=20, nWidth:=768, nHeight:=200
PRIVATE oDialogWindow, oLabel, oTimer, lFecharWindow:=.F.
PREPARE FONT oFont NAME "Courier New" WIDTH 14 HEIGHT -15
INIT DIALOG oDialogWindow ;
TITLE "Banner" ;
ICON oIconApp ;
AT 0,0 ;
SIZE nWidth,nHeight ;
FONT oFont ;
COLOR 16760439 ;
STYLE DS_CENTER + WS_VISIBLE + WS_SYSMENU
@ 0,0 SAY oLabel CAPTION "" ;
FONT oFont ;
STYLE SS_LEFT + WS_BORDER ;
COLOR hwg_RGB(0,0,255) BACKCOLOR 16777172
oLabel:bSize := { | o, x, y | hwg_MoveWindow( o:handle, addX / 2, nHeight - 60, x - addX, 20 ) }
Liga_Timer(oDialogWindow,.T.)
oDialogWindow:Center()
oDialogWindow:Activate() // Parâmetro .T. = NOMODAL, .F. ou () = MODAL
RETURN Nil
FUNCTION Liga_Timer(oJanela,lLiga)
MEMVAR oTimer
IF lLiga
SET TIMER oTimer of oJanela VALUE 300 ACTION {|| Letreiro() }
ELSE
oJanela:oTimer:End()
ENDIF
RETURN Nil
FUNCTION Letreiro()
LOCAL nTamanho:=(oDialogWindow:nWidth -25) /14
STATIC cTime
STATIC _RODAESQ
STATIC _RODADIR
IF _RODAESQ = NIL
cTime:=Time()
cTexto:=' Teste de Banner (letreiro) com HwGui'
aSize:=hwg_TxtRect( cTexto, oDialogWindow:aControls[1] )
cTexto:=Space(nTamanho-(aSize[1] / 14))+cTexto
_RODAESQ:=cTexto
ENDIF
IF _RODADIR = NIL
cTexto:='Teste de Banner (letreiro) com HwGui '
aSize:=hwg_TxtRect( cTexto, oDialogWindow:aControls[1] )
cTexto:=Space(nTamanho-(aSize[1] / 14))+cTexto
_RODADIR:=cTexto //PADL(cTexto,Len(Space(nTamanho-nLen))," ") //Roda para esquerda
ENDIF
//_RODADIR := SUBSTR(_RODADIR,LEN(_RODADIR))+SUBSTR(_RODADIR,1,Len(_RODADIR)-1) //PARA DIREITA
_RODAESQ := SUBSTR(_RODAESQ,2,LEN(_RODAESQ))+SUBSTR(_RODAESQ,1,1) //PARA ESQUERDA
oLabel:caption:=_RODAESQ
hwg_doevents()
RETURN Nil
FUNCTION Sair
lFecharWindow:=.T.
HWG_ExitProcess()
RETURN -1
INIT FUNCTION AppSetup()
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
HB_LANGSELECT("PT")
HB_CDPSELECT( "PT850" )
SET CENTURY ON
SET EPOCH TO 1920
SET DATE BRITI
RETURN Nil