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 -> tControl -> 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
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 )
showMessage
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 ] )
Observação: Método "showMessage" não suportado em Mac.
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 cIconlVisible := .T.Private aListCons := GetResArray("*"br_verde_mdi.png") If Len(aListCons)>0 oDlg :=TWindow TDialog():New( 10, 10, 200180,200 250, "ExemplotSystemTray TSystemTray",,,,,,,, CLR_BLACK,CLR_WHITE,,, ,,,,.T.)) systemTray := tSystemTray():New(oDlg , aListCons[nX] )//Seta Muda o Icone do systraySystem Tray oTButton1 oBtnIcon := 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) cTGet2 nTimeout :=50000 oTGet1 2000 // 2 Segundos oMsg := TGet():New( 022,02,{|u| if(Valtype(u)=="C",cTGet1 cMsg:= u , cTGet1cMsg)},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 , cTGet2nTimeout)},oDlg,050,009,"@E 999999",,0,,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F.,,/*cTGet2 nTimeout*/,,,, ) cCombo1 // Seleciona o icone da notificação cOption :=aItems aOptions[1] nItemCombo := 1 oCombo1 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 cOption') //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. ) 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) 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() ReturnEndIf |
Nota | |||
---|---|---|---|
|
| ||
Necessário utilizar a chave ENABLENEWADV=0 no [ ENVINROMENT] do appserver.ini para conseguir utilizar a variável oMainWnd:oWnd |
Previews
...
Windows
...
MacOS
Linux
...
...
...
...