Á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

 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

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

showMessage

 

 showMessage

Apresenta 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  
 
User Function tSystemTray()
Local systemTray
Local nX := 1Local aItems
:= {'NoIcon','Information','Warning','Critical'}


  Local cIcon 
lVisible
 
:=
 
.T.
Private
 
aListCons
 := 
GetResArray("*
"br_verde_mdi.png"
)
If Len(aListCons)>0

 
    oDlg := 
TWindow
TDialog():New(
10, 10, 
200
180, 
200
250, "Exemplo 
tSystemTray
TSystemTray"
,,
,,,,,
,
CLR_BLACK,CLR_WHITE,,,
,,,,
.T.) 
)
systemTray := tSystemTray():New(oDlg , aListCons[nX] )

   
    //
Seta
 Muda o Icone do 
System Tray
oTButton1
systray
    oBtnIcon := TButton():New( 002, 002, "Muda Icone",oDlg,;
        {||;
          cIcon := if (
nX<Len(aListCons),nX++,nX:=1), systemTray:setIcon(aListCons[nX])
cIcon=="br_verde_mdi.png", "br_vermelho_mdi.png", "br_verde_mdi.png"),;
          oSysTray:setIcon(cIcon);
        },40,10,,,.F.,.T.,.F.,,.F.,,,.F. )

oTButton3 := TButton():New( 002, 055, "Visible",oDlg,{|| oTGet1:lVisible := systemTray:lVisible := lVisible := !lVisible},40,10,,,.F.,.T.,.F.,,.F.,,,.F. )
cTGet1


    //-------------------
    // Notificações
    //-------------------
    cMsg      := Space(100)

cTGet2

    nTimeout  :=
50000
oTGet1
 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


    // Seleciona o icone da notificação
    cOption     := 
aItems
aOptions[1]


    nItemCombo  := 1

oCombo1

    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
cOption')

//Envia mensagem para o System Tray
oTButton2


    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)
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()

EndIf
Return
 

 

 

 

 

 

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