Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Composition Setup
import.css=/download/attachments/327912/newLayout.css
Portuguese

Pagetitle
TPaintPanelTMainDockTPaintPanel
TMainDock

Classe: TMainDock

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

TSrvObject -> TControl -> TMainDock

New

Método construtor da classe.

 

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.  

 

 
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 

 

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

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

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

 

NomeTipoDescriçãoObrigatórioReferência
nIdlVerticalNuméricoLogicalAs abas devem ser mudadas de posição para vertical (.T.) ou horizontal (.F.)Indica o ID (número de identificação) do shape que será excluído.X 

 

Método disponível a partir da build 7.00.080806P.

oPanel:DeleteItem(4)

InsertBlinker

Inclui um shape na lista que define os objetos que devem piscar quando o método SetBlinker() for configurado.

TPaintPanel(): InsertBlinker ( < nId> ) -->

 

NomeTipoDescriçãoObrigatórioReferência
nIdNuméricoIndica o ID (número de identificação) do shape.X 

 

Método disponível a partir da build 7.00.080806P.

oPanel:InsertBlinker(4)

SaveToPng

Salva o conteúdo do painel como imagem no formato PNG (Portable Network Graphics).

TPaintPanel(): SaveToPng ( < nLeft>, < nTop>, < nWidth>, < nHeight>, < cFileTarget> ) -->

 

NomeTipoDescriçãoObrigatórioReferência
nLeftNuméricoIndica a posição à esquerda onde a imagem será salva.X 
nTopNuméricoIndica a posição ao topo onde a imagem será salva.X 
nWidthNuméricoIndica a comprimento, a partir da esquerda, que a imagem será salva.X 
nHeightNuméricoIndica a altura, a partir do topo, que a imagem será salva.X 
cFileTargetCaracterIndica o nome do arquivo que será salvo.X 

 

oPanel:saveToPng(4,4,1000,340,"c:/diretorio/imagem.png")

SetBlinker

Define o tempo, em milisegundos, que os shapes da lista deverão piscar.

TPaintPanel(): SetBlinker ( < nTimer> ) -->

 

NomeTipoDescriçãoObrigatórioReferência
nTimerNuloIndica o tempo, em milisegundos, que o shape deverá piscar.X 

 

  • Método disponível a partir da build 7.00.080806P.
  • Para informações de como incluir ou excluir itens da lista, consulte a documentação dos métodos InsertBlinker() e DeleteBlinker().
oPanel:SetBlinker(500)  // Meio segundo

SetCanDeform

Define se o shape pode ou não ser movido dentro do seu próprio container.

TPaintPanel(): SetCanDeform ( < cId>, < lCanDeform> ) -->

 

NomeTipoDescriçãoObrigatórioReferência
cIdNuméricoIndica o ID (número de identificação) do shape que será movido.X 
lCanDeformLógicoIndica se, verdadeiro (.T.), o shape pode ser movido dentro do seu próprio container; caso contrário, falso (.F.).X 

 

Método disponível a partir da build 7.00.080806P.

oPanel:SetCanDeform(4,.T.)

SetCanMove

Define se o shape pode ou não ser movido.

TPaintPanel(): SetCanMove ( < cId>, < lCanMove> ) -->

 

NomeTipoDescriçãoObrigatórioReferência
cIdNuméricoIndica o ID (número de identificação) do shape que será movido.X 
lCanMoveLógicoIndica se, verdadeiro (.T.), o shape pode ser movido; caso contrário, falso (.F.).X 

 

Método disponível a partir da build 7.00.080806P.

oPanel:SetCanMove(4,.T.)

SetGradient

Define o gradient do shape.

TPaintPanel(): SetGradient ( < nId>, < lHover>, < cGradient> ) -->

 

NomeTipoDescriçãoObrigatórioReferência
nIdNuméricoIndica o ID (número de identificação) do shape.X 
lHoverLógicoIndica se, verdadeiro (.T.), o gradient será aplicado quando o shape estiver com o ponteiro do mouse posicionado; caso contrário, falso (.F.).X 
cGradientCaracterIndica o texto do gradient.X 

 

  • Pode-se definir o gradient quando o shape estiver em descanço ou quando estiver com o ponteiro do mouse posicionado sobre o shape.
  • Método disponível a partir da build 7.00.080806P.
oPanel:SetGradient(4,.F.,"1,0,0,0,0,0.0,#FF0000")   //Quando o ponteiro do mouse NÃO estiver sobre o shape. oPanel:SetGradient(4,.T.,"1,0,0,0,0,0.0,#FF00FF")  //Quando o ponteiro do mouse estiver sobre o shape.

SetImageSize

Altera as dimensões de uma shape do tipo 8 (imagem).

TPaintPanel(): SetImageSize ( < cID>, < nWidth>, < nHeight> ) -->

 

NomeTipoDescriçãoObrigatórioReferência
cIDCaracterIndica o ID (número de identificação) do shape que será movido.X 
nWidthNuméricoLargura para redimensionamento do shape.X 
nHeightNuméricoAltura para redimensionamento do shapeX 

 

Método disponível em build superior à 7.00.111010P.
oPanel:SetImageSize(1,300,600)

SetPosition

Define a posição do container ou do shape.

TPaintPanel(): SetPosition ( < nId>, < nLeft>, < nTop> ) -->

 

NomeTipoDescriçãoObrigatórioReferência
nIdNuméricoIndica o ID do objeto que será movido.X 
nLeftNuméricoIndica a nova posição à esquerda do objeto.X 
nTopNuméricoIndica a altura em pixels do objeto.X 

 

nID := 37 oPanel:setPosition(nID,100,100)

SetReleaseButton

Define se o bloco de código blClicked do Shape, será disparado no release do botão do mouse, mesmo estando este dentro no mesmo Container de origem do click do mouse.

TPaintPanel(): SetReleaseButton ( < IsReleaseButton> ) -->

 

NomeTipoDescriçãoObrigatórioReferência
IsReleaseButtonLógicoSe Verdadeiro, define que o bloco de código blClicked do Shape, será disparado no release do botão do mouse, mesmo estando este dentro no mesmo Container de origem do click do mouse.X 

 

Este método esta disponivel em build igual ou superior a 7.00.111010P.

SetScale

Define a escala(zoom) de para visualização do painel principal.

TPaintPanel(): SetScale ( < nScale> ) -->

 

NomeTipoDescriçãoObrigatórioReferência
nScaleDecimalEscala para visualização sendo que 1 define visualização de 100%.É possível utilizar valores fracionados, como 0.4 ou 3.7, por exemplo.X 

 

Este método esta disponivel em build igual ou superior a 7.00.111010P.
oPanel:SetScale(1)oPanel:SetScale(0.5)oPanel:SetScale(2.1)oPanel:SetScale(3.5)

SetToolTip

Define a dica de contexto (tooltip/hint) do shape.

TPaintPanel(): SetToolTip ( < nId>, < cText> ) -->

 

NomeTipoDescriçãoObrigatórioReferência
nIdNuméricoIndica o ID (número de identificação) do shape.X 
cTextCaracterIndica a nova mensagem, do tipo dica de contexto (tooltip/hint), do shape.X 

 

  • Esta mensagem será apresentada quando o ponteiro do mouse estiver posicionado sobre o shape.
  • Método disponível a partir da build 7.00.080806P.
oPanel:SetToolTip(4, "Novo Texto")

SetTransparent

Define, para o método SaveToPNG, se o fundo da imagem será salvo transparente.

TPaintPanel(): SetTransparent ( < IsTransparent> ) -->

 

NomeTipoDescriçãoObrigatórioReferência
IsTransparentLógicoSe verdadeiro, define que o fundo da imagem será salvo transparente, através do método SaveToPNG.X 

 

Este método esta disponivel em build igual ou superior a 7.00.111010P.
oPanel:SetTransparent(.T.)oPanel:saveToPng(0,0,600,600,"c:/dir/imagem.png")

SetVisible

Define se o objeto (container ou shape) será visível.

TPaintPanel(): SetVisible ( [ nId], [ lIsVisible] ) -->

 

NomeTipoDescriçãoObrigatórioReferência
nIdNuméricoIndica o ID do objeto que será visível/invisível.  
lIsVisibleLógicoIndica se o objeto é visível (.T.) ou invisível (.F.).  

 

nID := 37 oPanel:setVisible(nID, .T.)  // Define visível oPanel:setVisible(nID, .F.)  // Define invisível

 

PropriedadeDescriçãoTipo
bLClickedIndica o bloco de código que será executado quando clicar, com o botão esquerdo do mouse, sobre o objeto.Bloco de código
bLDblClickIndica o bloco de código que será executado quando clicar duas vezes, com o botão esquerdo do mouse, sobre o objeto.Bloco de código
bRClickedIndica o bloco de código que será executado quando clicar, com o botão direito do mouse, sobre o objeto.Bloco de código
nFrameAtuIndica o ID do último container selecionado.Numérico
nLeftAtuIndica a posição atual à esquerda do shape.Numérico
nLeftOldIndica a posição à esquerda do shape antes de ser movido.Numérico
nShapeAtuIndica o ID do último shape selecionado.Numérico
nTopAtuIndica a posição atual ao topo do shape.Numérico
nTopOldIndica a posição ao topo do shape antes de ser movido.Numérico

 

Características da classe

Esta classe permite criar subpainéis e diversos tipos de shapes, através do método AddShape(), para incluí-los nos subpainéis e trocar um shape de subpainel com auxílio do mouse.

Para isso, dispõe dos seguintes eventos:

  • Parâmetro do método AddShape() - Se o parâmetro estiver configurado como 1 (um), é possível mover o shape ao posicionar o ponteiro e clicar, com o botão esquerdo do mouse,  sobre o objeto.
  • Propriedade - Executa o bloco de código quando mover o shape entre os subpainéis e soltar o botão esquerdo do mouse.
  • Propriedade - Executa o bloco de código quando clicar, com o botão direito do mouse, sobre o subpainel ou shape.
  • Propriedade  - Executa o bloco de código quando clicar duas vezes, com o botão esquerdo do mouse, sobre o subpainel ou shape.

Concatenação de componentes

 

A partir da build  7.00.111010P foi implementada a possibilidade de concatenar(agrupar) componentes, permitindo que eles sejam movidos em conjunto. Para tando basta definir o ID dos "filhos" igual ao ID se seu "pai", por exemplo:

 

// Objeto PAI apenas ele sera movido oPanel:addShape("id=999;type=1;left=10;top=370;width=200;height=60;"+;  "gradient=1,0,0,0,0,0.0,#800000120;"+;  "pen-width=1;pen-color=#ffffff0;can-move=1;can-deform=1;")

 

// Retangulo transparente oPanel:addShape("id=999;type=1;left=40;top=375;width=60;height=30;"+;          "gradient=1,0,0,0,0,0.0,#00800080;"+;          "pen-width=1;pen-color=#ffffff0;can-move=1;can-deform=1;")

// Elipse oPanel:addShape("id=999;type=2;left=45;top=375;width=40;height=20;"+;                  "gradient=1,0,0,0,0,0.0,#CCE2CB100;pen-width=1;"+;                                 "pen-color=#ff00ff;can-move=1;can-deform=1;")                    

 

Comportamento no TOTVS Smart Client HTML

  • Shapes renderizados e exibidos através de uma imagem (formato PNG).
  • Sem interação com o usuário (estático).
  • Para que os shapes do tipo "image" sejam renderizados corretamente, a imagem deve antes ser copiada para o client utilizando a função CpyS2TW. (Para isso, configure na função CpyS2TW o segundo parâmetro como falso (.F.)).
#include "TOTVS.CH" User Function TPaintPanel() DEFINE DIALOG oDlg TITLE "Exemplo - TPaintPanel" FROM 180,180 TO 550,700 PIXEL // Cria o objeto principaloPanel := TPaintPanel():new(0,0,300,200,oDlg) //-------------
oMainDock:SetTabVertical( .T. )
 
 
Bloco de código
titleExemplo de um exemplo completo
#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
   //-------------------------------------------------------
------------------------------ // Define os blocos de codigo com eventos de Mouse //-------------------------------------------------------------------------------------------------- // EVENTO DE RELEASE(SOLTAR) BOTÃO ESQUERDO DO MOUSE APOS ARRASTO DO SHAPE oPanel:blClicked := {|x,y| alert("Release(Soltar)botão esquerdo - x:"+; strZero(x,5)+' - y:'+strZero(y,5)+; " - ShapeAtu:"+strZero(oPanel:ShapeAtu,3)+;" - FrameAtu:"+strZero(oPanel:FrameAtu,3) ) } // EVENTO DE CLICK COM BOTÃO DIREITO DO MOUSE oPanel:brClicked := {|x,y| alert("Click com botão direito - x:"+strZero(x,5)+' - y:'+strZero(y,5)+;" - ShapeAtu:"+strZero(oPanel:ShapeAtu,3)+; " - FrameAtu:"+strZero(oPanel:FrameAtu,3) ) } // EVENTO DE DUPLO-CLICK COM BOTÃO ESQUERDO DO MOUSE oPanel:blDblClick := {|x,y| alert("Duplo-click com botão esquerdo- x:"+strZero(x,5)+; " - y:"+strZero(y,5)+; " - ShapeAtu:"+strZero(oPanel:ShapeAtu,3)+;" - FrameAtu:"+strZero(oPanel:FrameAtu,3) ) } //-------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------- // Adiciona Container do tipo Retângulo - Type=1 //-------------------------------------------------------------------------------------------------- oPanel:addShape("id=0;type=1;left=0;top=0;width=270;height=400;"+; "gradient=1,0,0,0,0,0.0,#D0CEBC;pen-width=1;"+; "pen-color=#ffffff;can-move=0;can-mark=0;is-container=1;") oPanel:addShape("id=1;type=1;left=272;top=0;width=270;height=400;"+; "gradient=1,0,0,0,0,0.0,#B0B7E0;pen-width=1;"+; "pen-color=#ffffff;can-move=0;can-mark=0;is-container=1;") //-------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------- // Adiciona retangulo ovalado - Type=2 //-------------------------------------------------------------------------------------------------- oPanel:addShape("id=2;type=2;left=4;top=4;width=140;height=080;"+; "gradient=1,0,0,0,0,0.0,#CCE2CB;pen-width=1;"+; "pen-color=#ff00ff;can-move=0;can-mark=0;is-blinker=1;") //-------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------- // Adiciona elipse - Type=3 //-------------------------------------------------------------------------------------------------- oPanel:addShape("id=3;type=3;left=4;top=90;width=140;height=080;"+; "gradient=1,0,0,0,0,0.0,#EF8F8F;pen-width=1;"+; "pen-color=#ff00ff;can-move=0;can-mark=0;is-blinker=1;") //-------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------- // Adiciona grafico Pizza - Type=4 //-------------------------------------------------------------------------------------------------- oPanel:addShape("id=4;type=4;start-angle=90;sweep-length=200;left=04;"+; "top=180;width=100;height=100;gradient=2,050,050,070,-1,0.2,"+; "#ffffff,0.8,#67FF67,1.0,#000000;gradient-hover=2,050,050,"+; "070,-1,0.2,#ffffff,0.8,#C6FF9F,1.0,#000000;tooltip=Pizza 01;"+; "pen-width=1;pen-color=#000000;can-move=1;can-mark=1;is-container=0;") oPanel:addShape("id=5;type=4;start-angle=290;sweep-length=120;left=04;top=180;"+; "width=100;height=100;gradient=2,050,050,070,-1,0.2,#ffffff,0.8,"+; "#67FF67,1.0,#000000;gradient-hover=2,050,050,070,-1,0.2,#ffffff,"+; "0.8,#C6FF9F,1.0,#000000;tooltip=Pizza 02;pen-width=1;"+; "pen-color=#000000;can-move=1;can-mark=1;is-container=0;is-blinker=1;") oPanel:addShape("id=6;type=4;start-angle=410;sweep-length=040;left=04;top=180;"+; "width=100;height=100;gradient=2,050,050,070,-1,0.2,#ffffff,0.8,"+; "#67FF67,1.0,#000000;gradient-hover=2,050,050,070,-1,0.2,#ffffff,"+; "0.8,#C6FF9F,1.0,#000000;tooltip=Pizza 03;pen-width=1;"+; "pen-color=#000000;can-move=1;can-mark=1;is-container=0;is-blinker=0;") //-------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------- // Adiciona Poligono - Type=5 //-------------------------------------------------------------------------------------------------- oPanel:addShape("id=7;type=5;polygon=280:04,310:085,280:085;gradient=1,0,0,0,0,0.0,#ff0000;"+; "gradient-hover=1,0,0,0,0,0.0,#ffff00;tooltip=Poligono;pen-width=1;"+; "pen-color=#000000;can-move=1;can-mark=1;is-container=0;is-blinker=01;") //-------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------- // Adiciona Linha - Type=6 //-------------------------------------------------------------------------------------------------- oPanel:addShape("id=8;type=6;gradient=1,0,0,0,0,0.0,#134E8D;tooltip=Linha 01;pen-width=1;"+; "pen-color=#000000;can-move=1;can-mark=1;large=1;from-left=280;from-top=90;"+; "to-left=400;to-top=90;") oPanel:addShape("id=9;type=6;gradient=1,0,0,0,0,0.0,#E88C23;tooltip=Linha 02;pen-width=1;"+; "pen-color=#FF0000;can-move=1;can-mark=1;large=10;from-left=280;from-top=96;"+; "to-left=400;to-top=96;") //-------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------- // Adiciona Texto - Type=7 //-------------------------------------------------------------------------------------------------- oPanel:addShape("id=10;type=7;pen-width=1;font=arial,14,0,0,1;left=280;top=130;width=580;"+; "height=420;text=Teste de Texto...;gradient=0,0,0,0,0,0,#000000;") //-------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------- // Adiciona Imagem - Type=8 //-------------------------------------------------------------------------------------------------- If (GetRemoteType() == 5) ConOut("SmartClient HTML") CpyS2TW("\test\1.png", .F.) EndIf oPanel:addShape("id=11;type=8;left=280;top=180;width=100;height=100;"+; "image-file=c:/dir/image.png;tooltip=Figura Teste;can-move=1;is-blinker=1;")

   // 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. )   
   //-----------------------------------------------------
--------------------------------------------- ACTIVATE DIALOG oDlg CENTERED Return
Exemplo da classe TPaintPanel Image Removed
Protheus 10 , TOTVS Application Server 10 , ByYou Application Server
CpyS2TW
--
               
Return( DockDlg )

 

 
 Image Added