Pagetitle |
---|
| TPaintPanelTMainDockTPaintPanel |
---|
| TMainDock |
---|
|
Classe: TMainDockCria um painel para agrupar componentes que podem ser acoplados como o TWindowDock. NewMétodo construtor da classe. TMainDock(): New ( [ nRow], [ nCol], [ nWidth], [ nHeight], [ oWnd] ) --> oObjeto Nome | Tipo | Descrição | Obrigatório | Referência | nRow | Numérico | Indica a coordenada vertical em pixels. | | | nCol | Numérico | Indica a coordenada horizontal em pixels. | | | nWidth | Numérico | Indica a largura em pixels do objeto. | | | nHeight | Numérico | Indica a altura em pixels do objeto. | | | oWnd | Objeto | Indica a janela ou controle visual onde o objeto será criado. | | |
oObjeto()- Retorna o objeto criado.
oMainDock := TMainDock():New( 0, 0, 800, 600, oDlg ) SetCentralWidgetDefine o componente que poderá ser envolto pelos componentes acoplados.TMainDock(): SetCentralWidget ( < oComponente> ) --> Nome | Tipo | Descrição | Obrigatório | Referência | oComponente | Objeto | Componente que será envolto nos componentes acopláveis. | X | |
ExemplooMultiGet := TMultiGet():New(...) oMainDock:SetCentralWidget( oMultiGet ) AddDockWidgetAcopla um componente a este.TMainDock(): AddDockWidget ( <oComponente>, <nPosicao> ) --> Nome | Tipo | Descrição | Obrigatório | Referência | oComponente | Objeto | Componente que será acoplado. | X | | nPosicao | Numérico | Posiçã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 ) TabDockWidgetColoca um componente acoplável junto com outro numa interface de pastas.TMainDock(): TabDockWidget ( <oComponente1>, <oComponente2> ) --> Nome | Tipo | Descrição | Obrigatório | Referência | oComponente1 | Objeto | Componente já acoplado em alguma posição. | X | | oComponente2 | Objeto | Componente que será acoplado na mesma posição do anterior. | X | |
SetTabVerticalMuda a posição das abas da pasta de horizontal pra vertical.TMainDock(): SetTabVertical ( < nId> <lVertical> ) --> Nome | Tipo | Descrição | Obrigatório | Referência | nIdlVertical | Numérico | Logical | As 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. InsertBlinkerInclui um shape na lista que define os objetos que devem piscar quando o método SetBlinker() for configurado.TPaintPanel(): InsertBlinker ( < nId> ) --> Nome | Tipo | Descrição | Obrigatório | Referência | nId | Numérico | Indica o ID (número de identificação) do shape. | X | |
Método disponível a partir da build 7.00.080806P. SaveToPngSalva o conteúdo do painel como imagem no formato PNG (Portable Network Graphics).TPaintPanel(): SaveToPng ( < nLeft>, < nTop>, < nWidth>, < nHeight>, < cFileTarget> ) --> Nome | Tipo | Descrição | Obrigatório | Referência | nLeft | Numérico | Indica a posição à esquerda onde a imagem será salva. | X | | nTop | Numérico | Indica a posição ao topo onde a imagem será salva. | X | | nWidth | Numérico | Indica a comprimento, a partir da esquerda, que a imagem será salva. | X | | nHeight | Numérico | Indica a altura, a partir do topo, que a imagem será salva. | X | | cFileTarget | Caracter | Indica o nome do arquivo que será salvo. | X | |
oPanel:saveToPng(4,4,1000,340,"c:/diretorio/imagem.png") SetBlinkerDefine o tempo, em milisegundos, que os shapes da lista deverão piscar.TPaintPanel(): SetBlinker ( < nTimer> ) --> Nome | Tipo | Descrição | Obrigatório | Referência | nTimer | Nulo | Indica 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 SetCanDeformDefine se o shape pode ou não ser movido dentro do seu próprio container.TPaintPanel(): SetCanDeform ( < cId>, < lCanDeform> ) --> Nome | Tipo | Descrição | Obrigatório | Referência | cId | Numérico | Indica o ID (número de identificação) do shape que será movido. | X | | lCanDeform | Lógico | Indica 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.) SetCanMoveDefine se o shape pode ou não ser movido.TPaintPanel(): SetCanMove ( < cId>, < lCanMove> ) --> Nome | Tipo | Descrição | Obrigatório | Referência | cId | Numérico | Indica o ID (número de identificação) do shape que será movido. | X | | lCanMove | Lógico | Indica 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. SetGradientDefine o gradient do shape.TPaintPanel(): SetGradient ( < nId>, < lHover>, < cGradient> ) --> Nome | Tipo | Descrição | Obrigatório | Referência | nId | Numérico | Indica o ID (número de identificação) do shape. | X | | lHover | Lógico | Indica se, verdadeiro (.T.), o gradient será aplicado quando o shape estiver com o ponteiro do mouse posicionado; caso contrário, falso (.F.). | X | | cGradient | Caracter | Indica 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. SetImageSizeAltera as dimensões de uma shape do tipo 8 (imagem).TPaintPanel(): SetImageSize ( < cID>, < nWidth>, < nHeight> ) --> Nome | Tipo | Descrição | Obrigatório | Referência | cID | Caracter | Indica o ID (número de identificação) do shape que será movido. | X | | nWidth | Numérico | Largura para redimensionamento do shape. | X | | nHeight | Numérico | Altura para redimensionamento do shape | X | |
Método disponível em build superior à 7.00.111010P. oPanel:SetImageSize(1,300,600) SetPositionDefine a posição do container ou do shape.TPaintPanel(): SetPosition ( < nId>, < nLeft>, < nTop> ) --> Nome | Tipo | Descrição | Obrigatório | Referência | nId | Numérico | Indica o ID do objeto que será movido. | X | | nLeft | Numérico | Indica a nova posição à esquerda do objeto. | X | | nTop | Numérico | Indica a altura em pixels do objeto. | X | |
nID := 37 oPanel:setPosition(nID,100,100) SetReleaseButtonDefine 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> ) --> Nome | Tipo | Descrição | Obrigatório | Referência | IsReleaseButton | Lógico | Se 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. SetScaleDefine a escala(zoom) de para visualização do painel principal.TPaintPanel(): SetScale ( < nScale> ) --> Nome | Tipo | Descrição | Obrigatório | Referência | nScale | Decimal | Escala 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) SetToolTipDefine a dica de contexto (tooltip/hint) do shape.TPaintPanel(): SetToolTip ( < nId>, < cText> ) --> Nome | Tipo | Descrição | Obrigatório | Referência | nId | Numérico | Indica o ID (número de identificação) do shape. | X | | cText | Caracter | Indica 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") SetTransparentDefine, para o método SaveToPNG, se o fundo da imagem será salvo transparente.TPaintPanel(): SetTransparent ( < IsTransparent> ) --> Nome | Tipo | Descrição | Obrigatório | Referência | IsTransparent | Lógico | Se 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") SetVisibleDefine se o objeto (container ou shape) será visível.TPaintPanel(): SetVisible ( [ nId], [ lIsVisible] ) --> Nome | Tipo | Descrição | Obrigatório | Referência | nId | Numérico | Indica o ID do objeto que será visível/invisível. | | | lIsVisible | Lógico | Indica 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 Propriedade | Descrição | Tipo | bLClicked | Indica o bloco de código que será executado quando clicar, com o botão esquerdo do mouse, sobre o objeto. | Bloco de código | bLDblClick | Indica 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 | bRClicked | Indica o bloco de código que será executado quando clicar, com o botão direito do mouse, sobre o objeto. | Bloco de código | nFrameAtu | Indica o ID do último container selecionado. | Numérico | nLeftAtu | Indica a posição atual à esquerda do shape. | Numérico | nLeftOld | Indica a posição à esquerda do shape antes de ser movido. | Numérico | nShapeAtu | Indica o ID do último shape selecionado. | Numérico | nTopAtu | Indica a posição atual ao topo do shape. | Numérico | nTopOld | Indica a posição ao topo do shape antes de ser movido. | Numérico |
Características da classeEsta 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 |
---|
title | Exemplo 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 Image Added |