Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Composition Setup
import.css=/download/attachments/6062824/tecnologia.css

Cria um ícone do tipo System Tray na barra de tarefas do sistema operacional.

Inclusão de trecho
advpl - deprecated
advpl - deprecated
nopaneltrue

Aviso
titleAtenção!
Este componente não é suportado pelo TOTVS | SmartClient HTML.

Métodos

...

Método

 

 

...

Classe: tSystemTray

Cria um ícone na bandeja do desktop do sistema operacional, permite a utilização de menu e mensagem popup.
 

TSrvObject -> TSystemTray

Construtores

New

 

New

...

Método construtor da classe.

...

Sintaxe

tSystemTray(): New ( [ oWnd], [ cResIcon] ) --> oObjeto
 

Parâmetros

...

Nome

Tipo

Descrição

Obrigatório

Referência

oWndObjetoIndica

...

o objeto

...

do tipo TWindow, leia observação abaixo.

...

X

...


cResIconCaracterIcone que será apresentado na

...

área de notificação.

  

 

oObjeto
    ()
  • Retorna o objeto criado.
 
Exemplos
Nota
title
Atenção!

O parâmetro oWnd deve obrigatóriamente ser um objeto do tipo TWindow, caso contrario será disparada uma exceção no SmartClient.

Como só é permitido uma TWindow por sessão do SmartClient é necessário associar o TSystemTray ao objeto oMainWnd:oWnd, veja no exemplo abaixo.

Exemplo

systemTray := tSystemTray():New(

...

oMainWnd:oWnd, "OK" )

 

Métodos

setIcon

...

Método SetIcon

...

Método para alterar ícone da

...

área de notificação do sistema operacional.

Nota
titleAtenção!

Método pode apresentar restrições para algumas versões de Linux.

 

Sintaxe

tSystemTray(): setIcon( [ cResIcon] )

...

Parâmetros

 

NomeTipoDescriçãoObrigatórioReferência
cResIconCaracterIcone que será apresentado na

...

área de notificação.

...

X

...


Exemplo

Exemplos

tSystemTray():setIcon( "OK" )
setMenu

...

Método SetMenu

...

Método para definir o menu apresentado quando efetuado o clique com o botão direito sobre o componente.

Nota
titleAtenção!

Método pode apresentar restrições para algumas versões de Linux.

Sintaxe

tSystemTray(): setMenu( [ oMenu ] )

...

Parâmetros

...

NomeTipoDescriçãoObrigatórioReferência
oMenuObjetoMenu apresentado no componente

...



...

Exemplo

Exemplos

tSystemTray():setMenu( oMenu )
showMessage

 

...

Método ShowMessage

...

Apresenta

...

um ícone na área de notificação do sistema operacional.

Nota
titleAtenção!

Método "showMessage" não suportado em Mac.

Sintaxe

tSystemTray(): showMessage( [ cTitulo ], [ cMessage ], [ nTypeMessage ], [ ntimeout ] , [ bAction ] )

...

Parâmetros

 

NomeTipoDescriçãoObrigatórioReferência
cTitulo CaracterTitulo da mensagem.

...



cMessage CaracterMensagem apresentado.

...



nTypeMessage NuméricoTipo de Mensagem

...


0 = NoIcon,

...

1 = Information,

...

2 = Warning,

...

3 = Critical
ntimeout Numérico

Timeout em Milissegundos

da mensagem.

...



bAction Bloco de código

...

Indica o bloco de código que será executado quando clicar, sobre o botão.

...



...

Exemplo

Exemplos

tSystemTray():showMessage( "Titulo", "Mensagem", 1, 2000, {||Alert("Click")} )

Exemplo

...


Bloco de código
languagecpp
themeEclipse
titleExemplo
linenumberstrue
#INCLUDE "TOTVS.CH"

Function U_TSYSTEMTRAY()
  Local oSysTray
  Local aOptions  := 
 

User Function tSystemTray()

Local systemTray

Local nX := 1
Local aItems:=
{'NoIcon','Information','Warning','Critical'}

Local lVisible := .T.
Private aListCons := GetResArray("*.png")

If Len(aListCons)>0

oDlg := TWindow

  Local cIcon     := "br_verde_mdi.png"
 
    oDlg := TDialog():New(10, 10,
200
 180,
200
 250, "Exemplo
tSystemTray
 TSystemTray",,,,,
,,,
CLR_BLACK,CLR_WHITE
,,
,,,
,,
.T.)
systemTray := tSystemTray():New(oDlg , aListCons[nX] )
//Seta o Icone do System Tray
oTButton1 :=
 
   
    // Muda o Icone do systray
    oBtnIcon := TButton():New( 002, 002, "Muda Icone",oDlg,;
        {||;
          cIcon := if
(nX<Len(aListCons),nX++,nX:=1), systemTray:setIcon(aListCons[nX])},40,10,,,.F.,.T.,.F.,,.F.,,,.F. )
oTButton3 := TButton():New( 002, 055, "Visible",oDlg,{|| oTGet1:lVisible := systemTray:lVisible := lVisible := !lVisible
 (cIcon=="br_verde_mdi.png", "br_vermelho_mdi.png", "br_verde_mdi.png"),;
          oSysTray:setIcon(cIcon);
        },40,10,,,.F.,.T.,.F.,,.F.,,,.F.
)cTGet1 := Space(100)
cTGet2 := 50000
oTGet1 :=
 )

    //-------------------
    // Notificações
    //-------------------
    cMsg      := Space(100)
    nTimeout  := 2000 // 2 Segundos
    oMsg      := TGet():New( 022,02,{|u| if(Valtype(u)=="C",
cTGet1
cMsg:=u,
cTGet1
cMsg)},oDlg,050,009,"@!",,0,,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F.,,
cTGet1
cMsg,,,,
)
oTGet2
 )
    oTimeout  := TGet():New( 022,55,{|u| if(Valtype(u)=="N",
cTGet2
nTimeout:=u,
cTGet2
nTimeout)},oDlg,050,009,"@E 999999",,0,,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F.,,/*
cTGet2
nTimeout*/,,,,
)cCombo1:= aItems[1]
nItemCombo := 1
oCombo1 :=
 )

    // Seleciona o icone da notificação
    cOption     := aOptions[1]
    nItemCombo  := 1
    oCbOpt      := TComboBox():New(042,02,{|u|if(PCount()>0,
cCombo1
cOption:=u,
cCombo1
cOption)},
aItems
aOptions,50,20,oDlg,,;
      {||;
        nItemCombo := aScan(
aItems
aOptions,
cCombo1
cOption) - 1;
      },,,,.T.,,,,,,,,,'
cCombo1')//Envia mensagem para o System Tray
oTButton2 :=
cOption')

    oBtnNotif := TButton():New( 042, 055, "Mensagem",oDlg,;
        {||
systemTray
;
          oSysTray:showMessage("Titulo", Alltrim(
cTGet1
cMsg), nItemCombo ,
cTGet2
 nTimeout, {|| Alert("Click")} );
        },40,10,,,.F.,.T.,.F.,,.F.,,,.F.
)
systemTray:cToolTip := "ToolTip"oTMenu1 :=
 )

    // Popup menu do systray
    oMenu := TMenu():New(0,0,0,0,.T.,,
oDlg)
oTItem1
oMainWnd:oWnd)
    oIt1  := TMenuItem():New(oDlg,'Menu Item 1',,,,{|| Alert('Menu Item 1') },,'AVGLBPAR1',,,,,,,.T.)

oTItem2

    oIt2  := TMenuItem():New(oDlg,'Menu Item 2',,,,{|| Alert('Menu Item 2') },,,,,,,,,.T.)

oTMenu1

    oMenu:Add(
oTItem1)
oTMenu1
oIt1)
    oMenu:Add(
oTItem2)//Seta o Menu do System Tray
systemTray:setMenu(oTMenu1)
oDlg:Activate()

EndIf

Return

 

 

 

 

 

 
oIt2)

    // Systray deve ser criado sempre na TWindow principal
    oSysTray := TSystemTray():New(oMainWnd:oWnd, cIcon)
    oSysTray:cToolTip := "TOTVS S.A."
    oSysTray:setMenu(oMenu)
    
    oDlg:Activate()
Return
Nota
titleAtenção!

Necessário utilizar a chave ENABLENEWADV=0 no [ ENVINROMENT] do appserver.ini para conseguir utilizar a variável oMainWnd:oWnd

Previews

...

Windows

Image Added

Image Added

Image Added

MacOS

Image Added

Image Added

Linux

Image Added

Image Added

Image Added