Á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é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

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.

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

tSystemTray():setMenu( oMenu )

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ó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

...


Bloco de código
languagecpp
themeEclipse
titleExemplo
linenumberstrue
#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
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

Métodos

 

setIcon

 

Altera o ícone da bandeja.

 

TSystemTray(): setIcon ( cResIcon ) -->

Parâmetros

 

 

 

oTGet:CtrlRefresh()

...