Árvore de páginas

Classe: TMainDock

Cria um painel para agrupar componentes que podem ser acoplados como o TWindowDock.

TSrvObject -> TControl -> TMainDock

New

Método construtor da classe.

Sintaxe

TMainDock(): New ( [ nRow], [ nCol], [ nWidth], [ nHeight], [ oWnd] ) --> oObjeto

 

 

NomeTipoDescriçãoObrigatórioReferência
nRowNuméricoIndica a coordenada vertical em pixels.  
nColNuméricoIndica a coordenada horizontal em pixels.  
nWidthNuméricoIndica a largura em pixels do objeto.  
nHeightNuméricoIndica a altura em pixels do objeto.  
oWndObjetoIndica a janela ou controle visual onde o objeto será criado.  

Retorno

oObjeto
    ()
  • Retorna o objeto criado. 
oMainDock := TMainDock():New( 0, 0, 800, 600, oDlg )

SetCentralWidget

Define o componente que poderá ser envolto pelos componentes acoplados.

TMainDock(): SetCentralWidget ( < oComponente> ) -->

 

NomeTipoDescriçãoObrigatórioReferência
oComponenteObjetoComponente que será envolto nos componentes acopláveis.X 

Observações 

Exemplo

oMultiGet := TMultiGet():New(...)
oMainDock:SetCentralWidget( oMultiGet ) 

AddDockWidget

Acopla um componente a este.

TMainDock(): AddDockWidget ( <oComponente>, <nPosicao> ) -->

 

NomeTipoDescriçãoObrigatórioReferência
oComponenteObjetoComponente que será acoplado.X 
nPosicaoNuméricoPosição em que será acoplado.X 

Observações

A posição em que o componente será acoplado é sinalizada com um código onde:
1 =  Destacado para fora do componente;
2 = Acoplado a esquerda do componente central;
3 = Acoplado a direita do componente central;
4 = Acoplado acima do componente central;
5 = Acoplado abaixo do componente central.
oMainDock():AddDockWidget( oComponente, 2 )

TabDockWidget

Coloca um componente acoplável junto com outro numa interface de pastas.

TMainDock(): TabDockWidget ( <oComponente1>, <oComponente2> ) -->

 

NomeTipoDescriçãoObrigatórioReferência
oComponente1ObjetoComponente já acoplado em alguma posição.X 
oComponente2ObjetoComponente que será acoplado na mesma posição do anterior.X 

SetTabVertical

SetTabVertical

Muda a posição das abas da pasta de horizontal pra vertical.

TMainDock(): SetTabVertical ( <lVertical> ) -->

 

NomeTipoDescriçãoObrigatórioReferência
lVerticalLogicalAs abas devem ser mudadas de posição para vertical (.T.) ou horizontal (.F.)X 

Observações

oMainDock:SetTabVertical( .T. ) 
 
Exemplo completo do componente
#Include "TOTVS.CH"
// Propriedades de alinhamento do TWindowDock
#Define AllAlign  1
#Define LeftAlign 2
#Define RightAlign 3
#Define TopAlign 4
#Define BottomAlign 5
// --------------------------------------------
// Exemplo de janelas do tipo destacavel (Dock)
// --------------------------------------------
Function u_TstDock()
Private oMainDock
Private DockDlg1
Private DockDlg2
Private DockDlg3
Private cTGet1 := "Teste TGet 01"
Private cTGet2 := "Teste TGet 02"
Private nJanela := 0  
   DEFINE DIALOG oDlgMain FROM 10,10 TO 800,800 TITLE "Exemplo TMainDock/TWindowDock" PIXEL COLOR CLR_BLACK,RGB(212,208,200)
    oPanelLeft := tPanel():New(0,0,"",oDlgMain,,,,,RGB(132,172,196),06,06)
    oPanelLeft:align := CONTROL_ALIGN_LEFT
    
    oDlg := tPanel():New(0,0,"",oDlgMain,,,,,RGB(132,172,196),100,100)
    oDlg:align := CONTROL_ALIGN_ALLCLIENT
    // Splitter para montagem da tela
    oSplitter := tSplitter():New( 0,0,oDlg,260,184 )
    oSplitter:align := CONTROL_ALIGN_ALLCLIENT
                             
    // o TMainDock é uma Classe do tipo Painel que pode receber 
    // janelas destacaveis da Classe TWindowDock
    oMainDock := TMainDock():New(0,0,300,100,oSplitter)
    oMainDock:align := CONTROL_ALIGN_LEFT
    style := " QMainWindow{margin-right: 5px}"
    style += " QMainWindow::separator {background: rgb(132,172,196); width: 10px; height: 10px; } "
    oMainDock:SetCss(style)
                            
    // Define o objeto central da TMainDock, que pode ser qualquer
    // objeto visual, no exemplo foi usado um TMultiget
    cTMultiget1 := "TMultiget inserido pelo método setCentralWidget()"
    oTMultiget1 := TMultiget():New(00,00,{|u|if(Pcount()>0,cTMultiget1:=u,cTMultiget1)},;
                           oMainDock,400,400,,,,,,.T.)
    oMainDock:setCentralWidget( oTMultiget1 )
    // Painel lateral para os botões auxiliares
    oPaneAux := TPanel():New(0,0,"",oSplitter,,.F.,.F.,,,200,200,.T.,.F.)
    oPaneAux:align := CONTROL_ALIGN_ALLCLIENT                                                          
                                         
    // Botões para auxiliar na criação dos Docks                                                        
    TButton():New(02,02," Cria TWindowDock à Esquerda ",oPaneAux,{|| NewDock(LeftAlign, .F.) },96,010,,,.F.,.T.,.F.,,.F.,,,.F. )
    TButton():New(12,02," Cria TWindowDock a Direita ",oPaneAux,{|| NewDock(RightAlign, .F.) },96,010,,,.F.,.T.,.F.,,.F.,,,.F. )
    TButton():New(22,02," Cria TWindowDock ao Topo ",oPaneAux,{|| NewDock(TopAlign, .F.) },96,010,,,.F.,.T.,.F.,,.F.,,,.F. )
    TButton():New(32,02," Cria TWindowDock ao Rodapé ",oPaneAux,{|| NewDock(BottomAlign, .F.) },96,010,,,.F.,.T.,.F.,,.F.,,,.F. )
    TButton():New(52,02," Cria TWindowDock Destacado ",oPaneAux,{|| NewDock(AllAlign, .T.) },96,010,,,.F.,.T.,.F.,,.F.,,,.F. )
    TButton():New(62,02," A Direita sem restrição",oPaneAux,{|| ;
      dockAux:=NewDock(AllAlign,.F.),oMainDock:addDockWidget(dockAux,RightAlign) };
      ,96,010,,,.F.,.T.,.F.,,.F.,,,.F. )
    TButton():New(72,02," Conout ",oPaneAux,{|| conout("") },96,010,,,.F.,.T.,.F.,,.F.,,,.F. )
      
  ACTIVATE DIALOG oDlgMain CENTERED ON INIT ( NewDock(LeftAlign,.F.) )
Return              
// --------------------------------------------
// Função para criar janelas do tipo Dock
// --------------------------------------------
Static Function NewDock(nType, isFloat) 
   nJanela++
   cTexto := "Caption Janela: " + strZero(nJanela,2)
   // Cria janela do tipo Dock
   DockDlg  := TWindowDock():New( 0,0,200,300,cTexto,oMainDock,isFloat,nType )   
   style += " QDockWidget{ margin: 50px; color: #0052AF; titlebar-close-icon: url(rpo:fwocn_lyr_close.png); titlebar-normal-icon: url(rpo:fwocn_lyr_restore.png); }"
   style += " QDockWidget::title{ background-color: rgb(132,172,196); border-style: solid; "+;
     "    border-image: url(rpo:fwstd_lyr_title.png) 10 10 10 10 stretch; "+;
     "    border-top-width: 06px; "+;
     "    border-left-width: 10px; "+;
     "    border-right-width: 10px; "+;
     "    border-bottom-width: 0px; }"
   DockDlg:SetCss(style)
    
   // CodeBlocks de troca de "Dock" da janela e fechamento da janela
   DockDlg:bChange := {|x| conout('TWindowDock - bChange: ' + iif(x,"Destacada(True)","Ancorada(False)")) }
   DockDlg:bValid  := {| | conout('TWindowDock - bValid') }
   
   // Insere painel na  TWindowDock
   // OBS: Painel deve ser adicionado a janela atravez do método addWidget()
   //      e os objetos visuais da janela devem ser inseridos neste painel
   oPanelTop := tPanel():New(0,0,"",DockDlg,,,,,RGB(132,172,196),100,100)
   oPanelTop:SetCss("QLabel{border: 1px solid #7B92A0;}")
   DockDlg:addWidget(oPanelTop) 
   
   //*******************************************************
   // IMPORTANTE: O método addDockWidget() deve ser chamado
   // após a criação do Painel, para que haja ajuste do 
   // tamanho da janela TWindowDock
   //*******************************************************
   //*******************************************************
   // Se a janela TWindowDock for criada Ancorada
   // ela deve obrigatoriamente ser inserida na TMainDock 
   // atraves do metodo addDockWidget()
   //*******************************************************
   if !isFloat
      oMainDock:addDockWidget( DockDlg, nType )
   endif
   //-------------------------------------------------------
   // Cria objetos no Painel que foi inserido no TWindowDock
   oTGet1 := TGet():New( 02,02,{||cTGet1},oPanelTop,096,009,;
              "",,0,,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F.,,cTGet1,,,, )
   oTGet1:bValid := {|| conout("Valid do oTGet1") }            
   oTGet2 := TGet():New( 14,02,{||cTGet2},oPanelTop,096,009,;
              "",,0,,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F.,,cTGet2,,,, )
   oTGet2:bValid := {|| conout("Valid do oTGet2") }
  
   oBtnDock := TButton():New(28,02,"Botão: "+strZero(nJanela,2),oPanelTop,;
               {|| conout("Botão Precionado") },;
               50,14,,,.F.,.T.,.F.,,.F.,,,.F. )   
   //-------------------------------------------------------
               
Return( DockDlg )

 

 
 

 

 

  • Sem rótulos