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

...

 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

uma mensagem na bandeja do desktop do sistema operacional

.

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  := {'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