Á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 ] )

Observação: Método "showMessage" não suportado em Mac.

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

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

...

MacOS

Image Modified

Image Added

Linux

...

...

Image Modified

Image Modified

 

TOTVS - Build superior a 7.00.120420A

 

 

 

...

Image Added