Page 1 of 1
Tray System
Posted: Mon Oct 31, 2005 6:42 am
by goosfancito
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.
Posted: Mon Oct 31, 2005 6:47 am
by Antonio Linares
Gustavo,
Revisa el ejemplo samples\TestTray.prg.
De paso, te pido que uses una foto personal tuya como "avatar". Gracias.
Posted: Mon Oct 31, 2005 7:50 am
by goosfancito
[quote="Antonio Linares"]Gustavo,
Revisa el ejemplo samples\TestTray.prg.
De paso, te pido que uses una foto personal tuya como "avatar". Gracias.[/quote]
Con respecto a la foto, puse esa porque pensé que habias autorizado a usar cualquiera, ya que vi que otros usuarios la tienen.
Posted: Mon Oct 31, 2005 9:27 am
by Antonio Linares
Gustavo,
Estamos pidiéndole a todos los usuarios que proporcionen una foto personal. Las que no sean fotos personales se borrarán en breve.
Posted: Mon Oct 31, 2005 2:16 pm
by DanielPuente
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,
Grac ias a todos.
Posted: Mon Oct 31, 2005 3:59 pm
by goosfancito
Tema cerrado.