Árvore de páginas

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

Documentação de item não suportado ou descontinuado.

Atenção!

Este componente não é suportado pelo TOTVS | SmartClient HTML.

Métodos


Método 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.

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étodo SetIcon


Método para alterar ícone da área de notificação do sistema operacional.

Atençã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

tSystemTray():setIcon( "OK" )

Método SetMenu


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

Atençã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

tSystemTray():setMenu( oMenu )

Método ShowMessage


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

Atençã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ódigoIndica o bloco de código que será executado quando clicar, sobre o botão.

Exemplo

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

Exemplo



Exemplo
#INCLUDE "TOTVS.CH"

Function U_TSYSTEMTRAY()
  Local oSysTray
  Local aOptions  := {'NoIcon','Information','Warning','Critical'}
  Local cIcon     := "br_verde_mdi.png"
 
    oDlg := TDialog():New(10, 10, 180, 250, "Exemplo TSystemTray",,,,,CLR_BLACK,CLR_WHITE,,,.T.) 
   
    // Muda o Icone do systray
    oBtnIcon := TButton():New( 002, 002, "Muda Icone",oDlg,;
        {||;
          cIcon := if (cIcon=="br_verde_mdi.png", "br_vermelho_mdi.png", "br_verde_mdi.png"),;
          oSysTray:setIcon(cIcon);
        },40,10,,,.F.,.T.,.F.,,.F.,,,.F. )

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

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

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

    // Popup menu do systray
    oMenu := TMenu():New(0,0,0,0,.T.,,oMainWnd:oWnd)
    oIt1  := TMenuItem():New(oDlg,'Menu Item 1',,,,{|| Alert('Menu Item 1') },,'AVGLBPAR1',,,,,,,.T.)
    oIt2  := TMenuItem():New(oDlg,'Menu Item 2',,,,{|| Alert('Menu Item 2') },,,,,,,,,.T.)
    oMenu:Add(oIt1)
    oMenu:Add(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

Atenção!

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

Previews


Windows

MacOS

Linux














  • Sem rótulos