Histórico da Página
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 | ||||||
---|---|---|---|---|---|---|
|
Aviso | ||
---|---|---|
| ||
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
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. |
Nota | |||
---|---|---|---|
|
| ||
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 | ||
---|---|---|
| ||
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.
Nota | ||
---|---|---|
| ||
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.
Nota | ||
---|---|---|
| ||
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
...
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#INCLUDE "TOTVS.CH"
Function U_TSYSTEMTRAY()
Local oSysTray
Local aOptions := User Function tSystemTray() Local systemTray Local nX := 1Local aItems:= {'NoIcon','Information','Warning','Critical'} Local lVisible := .T. Private aListCons := GetResArray("*.png") If Len(aListCons)>0 oDlg := TWindowLocal cIcon := "br_verde_mdi.png" oDlg := TDialog():New(10, 10,200 180,200 250, "ExemplotSystemTray TSystemTray",,,,,,,, CLR_BLACK,CLR_WHITE ,,,,, ,,.T.) systemTray := tSystemTray():New(oDlg , aListCons[nX] )//Seta o Icone do System Tray oTButton1 := // Muda o Icone do systray oBtnIcon := TButton():New( 002, 002, "Muda Icone",oDlg,; {||; cIcon := if(nX<Len(aListCons),nX++,nX:=1), systemTray:setIcon(aListCons[nX])},40,10,,,.F.,.T.,.F.,,.F.,,,.F. ) oTButton3 := TButton():New( 002, 055, "Visible",oDlg,{|| oTGet1:lVisible := systemTray:lVisible := lVisible := !lVisible (cIcon=="br_verde_mdi.png", "br_vermelho_mdi.png", "br_verde_mdi.png"),; oSysTray:setIcon(cIcon); },40,10,,,.F.,.T.,.F.,,.F.,,,.F.)cTGet1 := Space(100) cTGet2 := 50000 oTGet1 := ) //------------------- // Notificações //------------------- cMsg := Space(100) nTimeout := 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:= aItems[1] nItemCombo := 1 oCombo1 := ) // Seleciona o icone da notificação cOption := aOptions[1] nItemCombo := 1 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')//Envia mensagem para o System Tray oTButton2 := cOption') 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) oDlg:Activate() EndIf Return
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 | ||
---|---|---|
| ||
Necessário utilizar a chave ENABLENEWADV=0 no [ ENVINROMENT] do appserver.ini para conseguir utilizar a variável oMainWnd:oWnd |
Previews
...