Aqui tienes un ejemplo sencillo
Code: Select all
//----------------------------------------------------------------------------//
// Programa: TESTMT01.PRG
// Autor...: Cristobal Navarro
//----------------------------------------------------------------------------//
#include "Fivewin.ch"
#include "hbthread.ch"
#include "gif.ch"
Static oPnel1
Function Main()
local oWnd
local oBar
local oBtt1
local oBtt2
local uTh1
local uTh2
local uTh3
local nPress := 0
DEFINE DIALOG oWnd FROM 0, 0 TO 660, 1100 TITLE "Test" PIXEL //MDI
DEFINE BUTTONBAR oBar SIZE 48, 48 OF oWnd 2015
DEFINE BUTTON oBtt1 PROMPT "Salir" OF oBar ACTION oWnd:End() TOOLTIP "Salir"
DEFINE BUTTON oBtt2 PROMPT "Test" OF oBar ;
ACTION ( nPress++, ;
uTh1 := hb_threadStart( HB_THREAD_INHERIT_PUBLIC, @WTest(), "Hello", 120, nPress ),;
uTh2 := hb_threadStart( HB_THREAD_INHERIT_PUBLIC, @WTest(), 333, 120, nPress ),;
MsgWait( "Process", "Modal", 5 ))
ACTIVATE DIALOG oWnd ;
ON INIT ( HazPnel( oWnd ), CrearGif( oWnd ) ) ;
VALID ( hb_threadTerminateAll(), .T. )
// uTh3 := hb_threadStart( HB_THREAD_INHERIT_PUBLIC, @CrearGif(), oWnd ),;
Return NIL
//----------------------------------------------------------------------------//
Function WTest( u, nF, nPress )
local x := 1
if Valtype( u ) = "N"
For x = 1 to 300 step 15
@ nF + x, 60 + ( ( nPress - 1 ) * 110 ) SAY "Thread " + StrZero( nPress + 1, 2 ) ;
OF oPnel1 PIXEL COLOR CLR_BLACK
SysRefresh()
hb_idleSleep( 0.8 )
Next x
else
For x = 1 to 300 step 15
@ nF + x, 4 + ( ( nPress - 1 ) * 110 ) SAY "Thread " + StrZero( nPress, 2 ) ;
OF oPnel1 PIXEL COLOR CLR_RED
SysRefresh()
hb_idleSleep( 0.8 )
Next x
endif
Return nil
//----------------------------------------------------------------------------//
Function HazPnel( oWnd )
@ 50, 400 PANEL oPnel1 OF oWnd SIZE 600, 550
oPnel1:SetColor( CLR_BLACK, CLR_YELLOW )
Return oPnel1
//----------------------------------------------------------------------------//
Function CrearGif( oDlg )
local oGif
@ 60, 10 GIF oGif FILE "..\gifs\matrix.gif" OF oDlg SIZE 100, 100 //ADJUST //
Return nil
//----------------------------------------------------------------------------//
Si lo pruebas y es ESTABLE, por favor, coméntalo en el foro.
Aunque como he dicho anteriormente, y el compañero Dario creo que lo ha expresado también muy bien, depende del objetivo para el que lo uses y cómo lo implementes
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.