// \SAMPLES\ALVAREZ.PRG - 05/07/2024.
#Include "FiveWin.ch" //-> The Best...
FUNCTION Espera_Alvarez()
LOCAL oDlg, oFld, oFont, aGrad, oBrush1, oBrush2, oBtn
LOCAL aBitmaps := { "..\bitmaps\alphabmp\facebook.bmp", ;
"..\bitmaps\alphabmp\windows.bmp" }
LOCAL nTempo_espera, cNome_funcao, lTimercontinua
// -> 1 hora tem 3600 segundos.
nTempo_espera := 15 // segundos.
cNome_funcao := "LOGOFF()"
lTimercontinua := .F.
aGrad := { { 0.30, CLR_WHITE, CLR_HBLUE },{ 0.50, CLR_HBLUE, CLR_WHITE } }
DEFINE BRUSH oBrush1 COLOR nRGB( 250, 213, 174 ) STYLE HORIZONTAL
DEFINE BRUSH oBrush2 COLOR nRGB( 192, 192, 192 ) STYLE HORIZONTAL
DEFINE FONT oFont NAME "Ms Sans Serif" SIZE 00, -14 BOLD
DEFINE DIALOG oDlg TITLE "- TFolderex - Testing -" SIZE 350, 350 ;
PIXEL TRUEPIXEL RESIZABLE // GRADIENT aGrad
@ 1, 0 FOLDEREX oFld PIXEL ADJUST OF oDlg ;
PROMPT "Prenotazioni", "Pagamenti" ;
BITMAPS aBitmaps ;
TAB HEIGHT 26 OPTION 1 ROUND 5 FONT oFont COLOR CLR_HGREEN TOP
oFld:aEnable = { .T., .T., .F. }
@ 245, 10 BTNBMP oBtn CENTER SIZE 100, 100 PIXEL OF oDlg NOROUND 2007
// oBtn:lTransparent := .T.
// oBtn:bClrGrad := {| lInvert | If( lInvert, oBrush2:hBrush, oBrush1:hBrush ) }
oBtn:Disable()
// 350, 0, 500, 400
oBtn:bPainted := <|hDC|
FillRectEx( hDC, { 150, 0, 200, 100 }, CLR_HGREEN )
return nil
>
ACTIVATE DIALOG oDlg CENTERED ;
ON INIT( oFld:Resize(), TINATIVO():NEW( nTempo_espera, cNome_funcao, ;
lTimerContinua ) )
RETURN NIL
// tinativo.prg - By William Adami
// exemplo do uso da classe Tinativo
// Apos um tempo de inatividade do mouse
// e do teclado chama uma funcao qualquer.
//#include "fivewin.ch"
// STATIC oWnd
//************
/*
FUNCTION Main()
LOCAL nTempo_espera, cNome_funcao, lTimercontinua
// Tempo a ser esperado ate chamar a funcao
// -> 1 hora tem 3600 segundos.
nTempo_espera := 10 // segundos.
// nome da funcao a ser chamada quando
// chegar no tempo de espera
cNome_funcao := "LOGOFF()"
// se apos executar a funcao , continua
// monitorando a inatividade do mouse e teclado.
lTimercontinua := .F.
define window oWnd title "Teste de teclado e mouse"
activate window oWnd ;
ON INIT tinativo():new( nTempo_espera, cNome_funcao, lTimerContinua )
RETURN NIL
*/
FUNCTION LOGOFF()
// msgalert( "AQUI ENTRA SUA FUNCAO DE LOGOFF !", "AVISO" )
IF MsgYesNo( OemToAnsi( "ATEN€ÇO USUµRIO: " )+CRLF+ ;
OemToAnsi( "PROTEJA OS BANCOS DE DADOS DO PROGRAMA." )+CRLF+ ;
OemToAnsi( "SE NÇO ESTIVER USANDO O ALVAREZ.EXE, " )+CRLF+ ;
OemToAnsi( "DESLIGUE-O PARA NÇO CORRER RISCOS. " )+CRLF+ ;
OemToAnsi( "POSSO DESLIGAR O PROGRAMA? <S> ou <N>??" ), ;
OemToAnsi( "AVISO PARA DESLIGAR O ALVAREZ.EXE... " ) )
HB_GCALL( .T. )
CLEAR MEMORY
PostQuitMessage( 0 )
QUIT
ENDIF
RETURN NIL
// tinativo.prg -> By William Adami
// #include "fivewin.ch"
CLASS TINATIVO
DATA nTimeInpAntes
DATA nTimeInpDepois
DATA cTimeAtu
DATA nTempo
DATA oTimerTime
DATA cFunc
DATA lContinuar
METHOD NEW( nTime, cFuncao, lContinua ) CONSTRUCTOR
METHOD ver_tempo()
ENDCLASS
METHOD new( ntime, cFuncao, lContinua ) CLASS TINATIVO
::cfunc := cfuncao
::ntempo := ntime
::lContinuar := lContinua
::oTimerTime := TTimer():New( 1000, { || ::VER_TEMPO() } )
::oTimerTime:Activate()
::cTimeAtu := time()
::nTimeInpAntes := getInputState() // 0 = erro
RETURN self
METHOD VER_TEMPO CLASS TINATIVO
LOCAL AUX
::nTimeInpDepois := getInputState()
IF ( ::nTimeInpDepois - ::nTimeInpAntes ) > 0
::nTimeInpAntes := getInputState()
::cTimeAtu := time()
ENDIF
IF ( CONVTIME( time() ) - CONVTIME( ::cTimeAtu ) ) > ::ntempo
::oTimerTime:DeActivate()
aux := ::cfunc
// aqui executa a funcao
&aux
if ::lContinuar
::oTimerTime:Activate()
::cTimeAtu := time()
ENDIF
ENDIF
RETURN NIL
FUNCTION CONVTIME( ZZ )
LOCAL Z
Z := ( VAL( LEFT(ZZ,2 ) ) * 360 ) + ( VAL( SUBSTR(ZZ,4,2 ) ) * 60 ) + ;
VAL( RIGHT( ZZ,2 ) )
RETURN Z
//*----------------------------------------------------------------------
#pragma BEGINDUMP
#define _WIN32_WINNT 0x0500
#define WINVER 0x0500
#include "windows.h"
#include "hbapi.h"
HB_FUNC( GETINPUTSTATE )
{
LASTINPUTINFO lpi;
lpi.cbSize = sizeof(LASTINPUTINFO);
if (!GetLastInputInfo(&lpi))
{
hb_retni(0);
}
hb_retni(lpi.dwTime);
}
#pragma ENDDUMP
// fin / end