Componente descontinuado e não suportado pelo SmartClient HTML
Cria um ícone do tipo System Tray na barra de tarefas do sistema operacional.
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