Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

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 ENABLEADV=0 no [ CONFIG ] do smartclient.ini para conseguir utilizar a variável oMainWnd:oWnd

Previews

...

Windows

MacOS

Linux

...