Á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 área de notificação do sistema operacional, permite a utilização de menu e mensagem popup.
 

TSrvObject -> TControl -> 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.

  
Observação: O Parâmetro oWnd deve ser sempre uma "TWindow". Caso contrario será disparada uma exceção no SmartClient.
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] )
Observação: Método pode apresentar restrições para algumas versões de Linux.

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.

tSystemTray(): setMenu( [ oMenu ] )

 
Observação: Método pode apresentar restrições para algumas versões de Linux. 
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

 

 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  

 

Nota

Funcionalidade não suportada pelo TOTVS | SmartClient HTML

 

User Function tSystemTray()
Local systemTray
Local nX := 1
Local aItems
:= {'NoIcon','Information','Warning','Critical'}


  Local 
lVisible
cIcon  
:=
 
.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 systray
   
System
 
Tray
oTButton1
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()
Return
EndIf
Return
 
Exemplo da classe TSystemTrayWindows: 
Nota
title
Atenção!

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

Previews

...

Windows

Image Modified

Image Modified

Image Modified

...

MacOS

Image Modified

Image Modified

Linux

...

...

Image Modified

Image Modified

Image Modified

...

 

TOTVS - Build superior a 7.00.120420A

 

 

 

...