Árvore de páginas

Versões comparadas

Chave

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

Componente descontinuado e não suportado pelo SmartClient HTML

Composition Setup
import.css=/download/attachments/327912/newLayout.css
Portuguese

Pagetitle
TTrackMenu
TTrackMenu

Classe: TTrackMenu

Cria um objeto do tipo menu vertical customizável.

  TSrvObject -> TControl -> TTrackMenu

New

Método construtor da classe.


TTrackMenu(): New ( < oDlg>, [ nRow], [ nCol], [ nWidth], [ nHeight], < bAction>, [ nHeigthBtn], [ cColorBackGround], [ cColorSeparator], [ cGradientTop], [ cGradientBottom], [ oFont], [ cColorText] ) --> oObjeto



 

NomeTipoDescriçãoObrigatórioReferência
oDlgObjetoIndica o controle visual onde o componente será criado.X
 

nRowNuméricoIndica a coordenada vertical.
 
 


nColNuméricoIndica a coordenada horizontal.
  


nWidthNuméricoIndica a largura em pixels do objeto.
  


nHeightNuméricoIndica a altura em pixels do objeto.
  


bActionBloco de códigoIndica o bloco de código que será executado quando clicar, com o botão esquerdo do mouse, sobre o botão.Este bloco de código receberá o próprio objeto e o ID do botão selecionado.Para mais detalhes consulte o exemplo da classe.X
 

nHeigthBtnNuméricoIndica a altura dos botões
 
 


cColorBackGroundCaracterIndica a cor de fundo do menu, no formato hexadecimal, exemplo #FFFFFF.
  


cColorSeparatorCaracterIndica a cor do separador dos botões, no formato hexadecimal, exemplo #FFFFFF.
 
 


cGradientTopCaracterIndica a cor inicial do gradiente da opção selecionada do menu, no formato hexadecimal, exemplo #FFFFFF.
  


cGradientBottomCaracterIndica a cor final do gradiente da opção selecionada do menu, no formato hexadecimal, exemplo #FFFFFF.
  


oFontObjetoIndica o objeto do tipo TFont utilizado para definir as características da fonte aplicada na exibição do conteúdo do controle visual.
  


cColorTextCaracterIndica a cor do texto do menu, no formato hexadecimal, exemplo #FFFFFF.
  

 




oObjeto
    ()
  • Retorna o objeto criado.

 


oTrackMenu  := TTrackMenu():New( oDlg, 10, 10, 200, 400, {|o,cID| MyAction(o, cID) } , 40, "#FFFFFF", "#C0C0C0",;                             "#57A2EE", "#2BD0F7", oFont, "#000000")

Métodos

Add

Insere um novo botão na última posição do menu.


TTrackMenu(): Add ( < cID>, < cDescrição>, [ cImageLeft], [ cImageRight] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
cIDCaracterID do botão.X
 

cDescriçãoCaracterDescrição do botãoX
 

cImageLeftCaracterImagem esquerda, deve estar compilada no repositório.
  


cImageRightCaracterImagem direita, deve estar compilada no repositório.
 
 

 






oTrackMenu:Add("ID002", "Item Menu 2", "agenda", "switch_on")

Insert

Insere um novo botão em uma determinada posição do menu.


TTrackMenu(): Insert ( < nPos>, < cID>, < cDescrição>, [ cImageLeft], [ cImageRight] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
nPosNuloPosição do menu a ser inserido o botão.X
 

cIDCaracterID do botão.X
 

cDescriçãoCaracterDescrição do botãoX
 

cImageLeftCaracterImagem esquerda, deve estar compilada no repositório.
  


cImageRightCaracterImagem direita, deve estar compilada no repositório.
 
 

 





Caso o usuário tente inserir um item na posição 20, por exemplo, em uma lista que tenha apenas 5 items, este assumira a ultima posição, ou seja, a posição seis da lista.

oTrackMenu:Insert(5, "ID_NEW01", "Item Menu NEW", "ok","cancel")

Move

Move um botão para determinada posição no menu.


TTrackMenu(): Move ( < cID>, < nPos> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
cIDCaracterID do botão.X
 

nPosNuméricoPosição de destino do botão.X
 

 





// Move botão ID004 para posição 8 do menuoTrackMenu:Move("ID004", 8)

Remove

Remove um botão do menu.


TTrackMenu(): Remove ( < cID> ) -->



 

NomeTipoDescriçãoObrigatórioReferência
cIDCaracterID bo botão a ser removido.X
 

 





oTrackMenu:Remove("ID002")

Reset

Limpa todos os itens do menu.


TTrackMenu(): Reset ( ) -->


 


oTrackMenu:Reset()

Select

Seleciona um botão do menu, colocando-o em evidência.


TTrackMenu(): Select ( < cID> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
cIDCaracterID do botão a ser selecionado.X
 
 




oTrackMenu:Select("ID005")

SetImage

Permite alterar a imagem direita de um botão do menu.


TTrackMenu(): SetImage ( < cID>, < cImage> ) -->



 

NomeTipoDescriçãoObrigatórioReferência
cIDCaracterID do botão.X
 

cImageCaracterImage a ser exibida no lado direito do botão do menu.A imagem deve obrigatoriamente estar compilado no repositório.X
 

 




Este método tem diversas aplicações, como simular uma opção do tipo "liga-desliga" ou simular animações como uma barra de progresso.
 
Para mais detalhes veja o exemplo desta classe.

oTrackMenu:SetImage( "ID002", "new_image.png")

 


PropriedadeDescriçãoTipo
bActionBloco de código que será executado quando clicar, com o botão esquerdo do mouse, sobre o botão.Este bloco de código receberá o próprio objeto e o ID do botão selecionado.Para mais detalhes consulte o exemplo da classe.Bloco de código
lReadOnlySe .T. indica que os itens do menu ficarão indisponíveis para seleção e movimentação.Lógico
 



A movimentação dos itens deste componente é similar ao comportamente encontrado nos menus do Android®  e iPhone®. 

Este componente esta disponivel em builds superiores à 7.00.111010P.


#include "TOTVS.CH"
//-------------------------------------------------
Function u_TrackMenu()
//-------------------------------------------------
local nX
local switch := .T.
DEFINE MSDIALOG oDlg TITLE "TTrackMenu" FROM 0,0 TO 650,400 COLORS 0, 13945799 PIXEL

nTop := 05
nLeft := 05
nWidth := 150
nHeight := 306
oPanel := tPanel():New(nTop,nLeft,,oDlg,,,,,,nWidth,nHeight)

// Estilo iPhone ®
oPanel:SetCss( " QLabel { background-color: white; border-radius: 12px ; border: 2px solid gray;}" )
cColorBackGround := "#FFFFFF"
cColorSeparator := "#C0C0C0"
cGradientTop := "#57A2EE"

// Gradiente inicial do botao selecionado
cGradientBottom := "#2BD0F7"
// Gradiente final do botao selecionado
cColorText := "#000000"

// Estilo Android ®
/*
oPanel:SetCss( " QLabel { background-color: black; border-radius: 12px ; border: 2px solid gray;}" )
cColorBackGround := "#000000"
cColorSeparator := "#FFFFFF"
cGradientTop := "#087BA6"

// Gradiente inicial do botao selecionado
cGradientBottom := "#087BA6"

// Gradiente final do botao selecionado
cColorText := "#C0C0C0"
*/

cHeigthBtn := 40
oFont := TFont():New('Arial',,12,,.T.,,,,,.F.,.F.)
oTrackMenu := TTrackMenu():New( oPanel, 3, 2, nWidth-4, nHeight-6, {|o,cID| MyAction(o, cId, @switch) }, cHeigthBtn, cColorBackGround, cColorSeparator,;
cGradientTop, cGradientBottom, oFont, cColorText )

// Insere botoes
oTrackMenu:Add("ID001", "Item Menu 1", "afastamento", )
oTrackMenu:Add("ID002", "Item Menu 2", "agenda" , "switch_on" )
oTrackMenu:Add("ID003", "Item Menu 3", "aviao" , "dummy.png" )
oTrackMenu:Add("ID004", "Item Menu 4", "bahead" , "arrow" )
oTrackMenu:Add("ID005", "Item Menu 5", , "arrow" )

for nX := 6 to 100
oTrackMenu:Add("ID"+StrZero(nX,3), "Item Menu "+cValToChar(nX))
next nX
ACTIVATE MSDIALOG oDlg CENTERED
Return

//-------------------------------------------------
Static Function MyAction(oTrackMenu, cId, switch)
//-------------------------------------------------
local nX
// Similação de Switch (Liga-Desliga)
if cId == "ID002"
switch = !switch
oTrackMenu:SetImage( "ID002", iif(switch, "switch_on", "switch_off") )
endif

// Simulação de barra de progresso
if cId == "ID003"
oTrackMenu:lReadOnly := .T.

for nX := 1 to 5
oTrackMenu:SetImage( "ID003", "bar0"+cValToChar(nX) )
ProcessMessages()
sleep(500)
next

oTrackMenu:lReadOnly := .F.
endif

// Exibe item selecionado
Conout("Item Selecionado: "+cID)
Return


Image Modified

Microsiga Protheus 11 , Protheus 10