Cria um ícone do tipo System Tray na barra de tarefas do sistema operacional.
Documentação de item não suportado ou descontinuado.
Atenção!
Métodos
Método New
Método construtor da classe.
Sintaxe
tSystemTray(): New ( [ oWnd], [ cResIcon] ) --> oObjeto
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
oWnd | Objeto | Indica o objeto do tipo TWindow, leia observação abaixo. | X | |
cResIcon | Caracter | Icone que será apresentado na área de notificação. |
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étodo SetIcon
Método para alterar ícone da área de notificação do sistema operacional.
Atenção!
Método pode apresentar restrições para algumas versões de Linux.
Sintaxe
tSystemTray(): setIcon( [ cResIcon] )
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
cResIcon | Caracter | Icone 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.
Atenção!
Método pode apresentar restrições para algumas versões de Linux.
Sintaxe
tSystemTray(): setMenu( [ oMenu ] )
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
oMenu | Objeto | Menu apresentado no componente |
Exemplo
tSystemTray():setMenu( oMenu )
Método ShowMessage
Apresenta um ícone na área de notificação do sistema operacional.
Atenção!
Método "showMessage" não suportado em Mac.
Sintaxe
tSystemTray(): showMessage( [ cTitulo ], [ cMessage ], [ nTypeMessage ], [ ntimeout ] , [ bAction ] )
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
cTitulo | Caracter | Titulo da mensagem. | ||
cMessage | Caracter | Mensagem apresentado. | ||
nTypeMessage | Numérico | Tipo 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
#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
Atenção!
Necessário utilizar a chave ENABLENEWADV=0 no [ ENVINROMENT] do appserver.ini para conseguir utilizar a variável oMainWnd:oWnd