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

Aviso
titleAtenção!
Este componente não é suportado pelo TOTVS | SmartClient HTML.

Métodos

...

New

...

Método construtor da classe.

...

tSystemTray(): New ( [ oWnd], [ cResIcon] ) --> oObjeto

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

oWndObjetoIndica
a janela ou controle visual onde
o objeto
será criado. Permitido apenas tWindow.x
do tipo TWindow, leia observação abaixo.X
cResIconCaracterIcone que será apresentado na área de notificação.

Nota
titleAtenção!

O Parâmetro parâmetro oWnd deve ser sempre uma "TWindow". Caso 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" )

...

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

...

...

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
ndica
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 uU_tSystemTrayTSYSTEMTRAY()
  Local systemTrayoSysTray
  Local nX := 1
  Local aItemsaOptions  := {'NoIcon','Information','Warning','Critical'}
  Local lVisible := .T.
cIcon   Private aListCons := GetResArray("*"br_verde_mdi.png")
  If Len(aListCons)>0
    oDlg := TWindowTDialog():New( 10, 10, 200180, 200250, "Exemplo tSystemTrayTSystemTray",,,,,,,,CLR_BLACK,CLR_WHITE,,,,,,,.T. )
    systemTray := tSystemTray():New(oDlg , aListCons[nX] )
    
    //Seta Muda o Icone do System Traysystray
    oTButton1oBtnIcon := 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)
    cTGet2nTimeout  := 50000
2000 // 2 Segundos
    oMsg     oTGet1 := TGet():New( 022,02,{|u| if(Valtype(u)=="C",cTGet1 cMsg:= u , cTGet1cMsg)},oDlg,050,009,"@!",,0,,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F.,,cTGet1cMsg,,,, )
    oTGet2oTimeout  := TGet():New( 022,55,{|u| if(Valtype(u)=="N",cTGet2 nTimeout:= u , cTGet2nTimeout)},oDlg,050,009,"@E 999999",,0,,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F.,,/*cTGet2nTimeout*/,,,, )

     cCombo1// Seleciona o icone da notificação
    cOption     := aItemsaOptions[1]
    nItemCombo  := 1
    oCbOpt     oCombo1 := TComboBox():New(042,02,{|u|if(PCount()>0,cCombo1cOption:=u,cCombo1cOption)},aItemsaOptions,50,20,oDlg,,;
      {||;
        nItemCombo := aScan(aItemsaOptions,cCombo1cOption) - 1;
      },,,,.T.,,,,,,,,,'cCombo1cOption')

    //Envia mensagem para o System Tray
    oTButton2 oBtnNotif := TButton():New( 042, 055, "Mensagem",oDlg,;
        {|| systemTray;
          oSysTray:showMessage("Titulo" , Alltrim(cTGet1cMsg) , nItemCombo , cTGet2nTimeout, {|| Alert("Click")} );
        },40,10,,,.F.,.T.,.F.,,.F.,,,.F. )

    // Popup systemTray:cToolTip := "ToolTip"menu do systray
    oTMenu1oMenu := TMenu():New(0,0,0,0,.T.,,oDlgoMainWnd:oWnd)
    oIt1 oTItem1 := TMenuItem():New(oDlg,'Menu Item 1',,,,{|| Alert('Menu Item 1') },,'AVGLBPAR1',,,,,,,.T.)
    oIt2 oTItem2 := TMenuItem():New(oDlg,'Menu Item 2',,,,{|| Alert('Menu Item 2') },,,,,,,,,.T.)
    oTMenu1oMenu:Add(oTItem1oIt1)
    oTMenu1oMenu:Add(oTItem2oIt2)

    // Systray deve ser criado sempre na TWindow principal
     //Seta o Menu do System TrayoSysTray := TSystemTray():New(oMainWnd:oWnd, cIcon)
    oSysTray:cToolTip := "TOTVS S.A."
    systemTrayoSysTray:setMenu(oTMenu1oMenu)
    
    oDlg:Activate()
  EndIf
Return

Previews

...

Windows

MacOS

Linux