Estimados:
Quiero hacer que cuando mi programa en xHarbour este corriendo se muestre en el systray (al lado del reloj, por ejemplo) un ícono indicando que esta siendo utilizado el programa.
Me pueden dar una idea del mismo.
Gracias.
Tray System
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
- goosfancito
- Posts: 1392
- Joined: Fri Oct 07, 2005 7:08 pm
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
-
- Posts: 108
- Joined: Sun Oct 09, 2005 6:12 pm
- Location: Mar del Plata - Argentina
- Contact:
Gustavo:
Static oTray, oTrayMenu
static oTaskBarIcon, oIcon
DEFINE ICON oIco RESOURCE "PETROSUR"
DEFINE WINDOW oWnd FROM 0,0 TO 23, 79 ;
TITLE OEMTOANSI("Petrosur S.R.L. * Actualizador de datos en servidor MYSQL");
ICON oIco ;
MENU BuildMenu();
COLOR CLR_BLACK, RGB(88,102,129)
oWnd:bTaskBar := { | nWParam, nLParam | TaskBar( nWParam, nLParam ) }
ACTIVATE WINDOW oWnd MAXIMIZED ;
ON INIT (SetUpTray(oBmp),IF(LOGIN(),(cLogin:=.T.,Start(), MuestraUsuario()), oWnd:End()));
VALID FINALIZAR(oTray)
Function SetUpTray(oBmp)
Local oIcon
DEFINE ICON oIcon RESOURCE "PETROSUR" //"SANTAC"
oTray := TaskAddIcon( oWnd, oIcon, "Programa Actualizador MYSQL" )
Return NIL
Function RMenu(r,c)
Local oMenu
MENU oMenu POPUP
MENUITEM "Abrir Programa Actualizador MYSQL" ACTION ( oWnd:Show() )
MENUITEM "Cerrar Programa Actualizador MYSQL" ACTION ( oWnd:end() )
ENDMENU
ACTIVATE POPUP oMenu OF oWnd AT r,c
Return NIL
Function TaskBar( nWParam, nLParam )
Local a := array(2)
static lWorking := .f.
if ! lWorking
lWorking = .t.
do case
case nLParam == WM_LBUTTONUP
case nLParam == WM_RBUTTONUP
a := GetCursorPos()
a = ScreenToClient( oWnd:hWnd, a )
RMenu(a[1],a[2])
endcase
lWorking = .f.
endif
return nil
FUNCTION FINALIZAR()
LOCAL RET:=.F.
SALIR:=99
IF cProcesando
ELSE
RET:=.T.
ENDIF
if oMysql # nil .and. ret
oMysql:Close()
endif
if ret
TaskDelIcon( oTray )
IF oTmr # nil
oTmr:Deactivate()
ENDIF
endif
RETURN RET
Saludos,
Static oTray, oTrayMenu
static oTaskBarIcon, oIcon
DEFINE ICON oIco RESOURCE "PETROSUR"
DEFINE WINDOW oWnd FROM 0,0 TO 23, 79 ;
TITLE OEMTOANSI("Petrosur S.R.L. * Actualizador de datos en servidor MYSQL");
ICON oIco ;
MENU BuildMenu();
COLOR CLR_BLACK, RGB(88,102,129)
oWnd:bTaskBar := { | nWParam, nLParam | TaskBar( nWParam, nLParam ) }
ACTIVATE WINDOW oWnd MAXIMIZED ;
ON INIT (SetUpTray(oBmp),IF(LOGIN(),(cLogin:=.T.,Start(), MuestraUsuario()), oWnd:End()));
VALID FINALIZAR(oTray)
Function SetUpTray(oBmp)
Local oIcon
DEFINE ICON oIcon RESOURCE "PETROSUR" //"SANTAC"
oTray := TaskAddIcon( oWnd, oIcon, "Programa Actualizador MYSQL" )
Return NIL
Function RMenu(r,c)
Local oMenu
MENU oMenu POPUP
MENUITEM "Abrir Programa Actualizador MYSQL" ACTION ( oWnd:Show() )
MENUITEM "Cerrar Programa Actualizador MYSQL" ACTION ( oWnd:end() )
ENDMENU
ACTIVATE POPUP oMenu OF oWnd AT r,c
Return NIL
Function TaskBar( nWParam, nLParam )
Local a := array(2)
static lWorking := .f.
if ! lWorking
lWorking = .t.
do case
case nLParam == WM_LBUTTONUP
case nLParam == WM_RBUTTONUP
a := GetCursorPos()
a = ScreenToClient( oWnd:hWnd, a )
RMenu(a[1],a[2])
endcase
lWorking = .f.
endif
return nil
FUNCTION FINALIZAR()
LOCAL RET:=.F.
SALIR:=99
IF cProcesando
ELSE
RET:=.T.
ENDIF
if oMysql # nil .and. ret
oMysql:Close()
endif
if ret
TaskDelIcon( oTray )
IF oTmr # nil
oTmr:Deactivate()
ENDIF
endif
RETURN RET
Saludos,