Page 5 of 7

Re: Fwh19.05 - New Class TDockPnel

PostPosted: Sun Aug 23, 2020 4:47 pm
by cnavarro
Te faltaba la clausula PIXEL en el GET ? :D :D :D :D :D :D

Re: Fwh19.05 - New Class TDockPnel

PostPosted: Sun Aug 23, 2020 6:53 pm
by leandro
No, me toco cambiar toda la sintaxis en lo referente a la definición del xbrowse, use la función ejemplo que me enviaste test1 y como resulto como lo necesitaba, con base en este cambie los datos y solucionado.

Agregando la clausula PIXEL tampoco funciona.

Re: Fwh19.05 - New Class TDockPnel

PostPosted: Sun Aug 23, 2020 7:44 pm
by cnavarro
leandro wrote:No, me toco cambiar toda la sintaxis en lo referente a la definición del xbrowse, use la función ejemplo que me enviaste test1 y como resulto como lo necesitaba, con base en este cambie los datos y solucionado.

Agregando la clausula PIXEL tampoco funciona.


Luego miro tu código a ver qué tiene de especial lo que hiciste para que no te funcione.
Me alegro que lo hayas solucionado.

Re: Fwh19.05 - New Class TDockPnel

PostPosted: Mon Aug 24, 2020 5:21 pm
by leandro
Si, menos mal.

Ven, no sera que en mi código, hace falta definir el xbrowse en pixeles? :o

Code: Select all  Expand view

    oBrwMs := TXBrowse():New( oP )
    oBrwMs:nTop                        := nT
    oBrwMs:nLeft                       := nL
    oBrwMs:nHeight                   := nH
    oBrwMs:nWidth                    := nW
    oBrwMs:nMarqueeStyle         := MARQSTYLE_HIGHLROW
    oBrwMs:nRowDividerStyle      := LINESTYLE_LIGHTGRAY
    oBrwMs:nColDividerStyle      := LINESTYLE_LIGHTGRAY
    oBrwMs:nHeaderLines          := 1
    oBrwMs:lColDividerComplete   := .t.
    oBrwMs:lRecordSelector       := .t.
    oBrwMs:l2007                 := .f.
    oBrwMs:oFont                 := oFont1  
    oBrwMs:nStretchCol           := STRETCHCOL_LAST
    oBrwMs:bClrRowFocus    := { || { CLR_BLACK, RGB( 185, 220, 255 ) } }
    oBrwMs:bClrStd         := { || { Rgb( 88, 88, 88 ), CLR_WHITE } }
    oBrwMs:nColorPen       := CLR_HGRAY
    oBrwMs:bClrHeader      := { || { CLR_BLACK, CLR_WHITE, CLR_HGRAY } }
    oBrwMs:bClrFooter      := { || { CLR_BLACK, CLR_WHITE, CLR_HGRAY } }
    oBrwMs:lFullGrid       := .T.
    oBrwMs:lRecordSelector := .F.
    oBrwMs:lHScroll        := .F.
    oBrwMs:lVScroll        := .F.
    oBrwMs:lFitGridHeight  := .T.
    oBrwMs:nHeaderHeight   := 32
    oBrwMs:nRowHeight      := 27
    oBrwMs:lFooter         := .t.
    oBrwMs:nFooterLines    := 1
    oBrwMs:nFooterHeight   := 30  
 


Con esta sintaxis como lo defino en pixeles?

Re: Fwh19.05 - New Class TDockPnel

PostPosted: Mon Aug 24, 2020 11:57 pm
by leandro
Cristobal buenas noches,

Agregue la data lpixel y pummm se reventó

Code: Select all  Expand view

Application
===========
   Path and name: C:\DLYMA\dlyma.exe (32 bits)
   Size: 6,577,664 bytes
   Compiler version: xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613)
   FiveWin  version: FWH 19.09
   C compiler version: Borland/Embarcadero C++ 7.3 (32-bit)
   Windows version: 6.2, Build 9200

   Time from start: 0 hours 0 mins 4 secs
   Error occurred at: 24/08/2020, 18:56:20
   Error description: Error BASE/1005  Message not found: TXBROWSE:LPIXEL
 

Re: Fwh19.05 - New Class TDockPnel

PostPosted: Tue Aug 25, 2020 2:05 am
by cnavarro
Disculpa, y olvida mi anterior mensaje ( lo he borrado porque efectivamente, esa DATA lPixel no existe ). Debe ser algo de la edad ya :shock:, o porque me hubiese gustado que estuviese :lol: y lo he "soñado"
Sólo puedes definir el comportamiento PIXEL de los controles con su clausula PIXEL

Re: Fwh19.05 - New Class TDockPnel

PostPosted: Mon Oct 05, 2020 2:05 pm
by vilian
Hi Cristobal,
I'm trying to created a TdockPnel where I have three xBrowses, but only the two first are shown. The code I'm trying is bellow:

Code: Select all  Expand view
DEFINE WINDOW oWnd FROM nRow, nCol TO nWAlto + nRow, nWAncho + nCol ;
             PIXEL TITLE "Movimentos do Dia "+Dtoc(dDataAtual) MENU oMenu ;
             COLOR CLR_WHITE, Rgb( 182, 182, 182 ) //NOSYSMENU //NOZOOM //NOMINIMIZE
         
         CreateDocks(oWnd)
   
      ACTIVATE WINDOW oWnd MAXIMIZED
 


Code: Select all  Expand view
STATIC FUNCTION  CreateDocks(oWnd)
LOCAL aRes[2],aPos:={},oFnt,oDock[4]

    DEFINE FONT oFnt NAME "CALIBRI" SIZE 0,-16

    aRes := {GetSysMetrics(0),GetSysMetrics(1)}
    Aadd(aPos,{014,005,370,278})
    Aadd(aPos,{014,300,360,aRes[1]-10})
    Aadd(aPos,{390,300,aRes[2]/3,aRes[1]-10})

    oDock[1]  := TDockPnel():New( oWnd )
    WITH OBJECT oDock[1]
        :SetCoors( aPos[1,1], aPos[1,2], aPos[1,3], aPos[1,4] )
        :SetHeightCaption( 40 )
        :SetBorderSize( 4 )
        :SetCaption( "Calendário" )
        :SetColors( CLR_WHITE, METRO_OLIVE, , )
        :SetFont( oFnt )
        :cAlignText  := "CC"
        :SetCtrlsPnel( { | o, nT, nL, nH, nW | DefDialog(  o, nT, nL, nH, nW, 1 ) } )
        :Activate()
    END
   
    oDock[2]  := TDockPnel():New( oWnd )
    WITH OBJECT oDock[2]
        :SetCoors( aPos[2,1], aPos[2,2], aPos[2,3], aPos[2,4] )
        :SetHeightCaption( 40 )
        :SetBorderSize( 4 )
        :SetCaption( "Autorizações" )
        :SetColors( CLR_WHITE, METRO_OLIVE, , )
        :SetFont( oFnt )
        :cAlignText  := "CC"
        :SetCtrlsPnel( { | o, nT, nL, nH, nW | DefDialog(  o, nT, nL, nH, nW, 2 ) } )
        :Activate()
    END  

    oDock[3]  := TDockPnel():New( oWnd )
    WITH OBJECT oDock[3]
        :SetCoors( aPos[3,1], aPos[3,2], aPos[3,3], aPos[3,4] )
        :SetHeightCaption( 40 )
        :SetBorderSize( 4 )
        :SetCaption( "Faturamento" )
        :SetColors( CLR_WHITE, METRO_OLIVE, , )
        :SetFont( oFnt )
        :cAlignText  := "CC"
        :SetCtrlsPnel( { | o, nT, nL, nH, nW | DefDialog(  o, nT, nL, nH, nW, 3 ) } )
        :Activate()
    END  

    oFnt:End()

RETURN nil
 


Code: Select all  Expand view
STATIC FUNCTION DefDialog( oP, nT, nL, nH, nW, nD )
   LOCAL oCol,k,oLbx[3]
   
      //MONTA CALENDÁRIO
      IF nD = 1
         @ 055,006 XBROWSE oLbx[1] ARRAY aVetMes SIZE 250,197 CELL PIXEL OF oP COLUMNS 1,2,3,4,5,6,7 HEADERS "Dom","Seg","Ter","Qua","Qui","_","Sab" ;
                   PICTURES "99","99","99","99","99","99","99" SIZES 33,33,33,33,34,34,34 UPDATE
                  oLbx[1]:CreateFromCode()
                                                               
      ELSEIF nD = 2
             @ nT,nL XBROWSE oLbx[2] OF oP SIZE nW, nH PIXEL DATASOURCE oQryAut LINES UPDATE ;
                     COLUMNS {{"npedido","Nº Pedido",,85},{"razaosc","Cliente",,360},{"valor","Valor","9,999,999.99",85,1},{"usuario","Usuário",,65},{"data","Data",,85},{"hora","Hora",,70}}
                     oLbx[2]:CreateFromCode()        
      ELSEIF nD = 3      
             @ nT+nH,nL XBROWSE oLbx[3] OF oP SIZE nW, nH PIXEL DATASOURCE oQryFat LINES UPDATE ;
                     COLUMNS {{"nfiscal","Nº Nota",,85},{"razaosc","Cliente",,360},{"valor","Valor","9,999,999.99",85,1},{"usuario","Usuário",,65},{"data","Data",,85},{"hora","Hora",,70}}
                     oLbx[3]:CreateFromCode()              
      ENDIF  
   
   RETURN nil  


I don't know why the third xbrowse is not shown. Could you Help me ?

Re: Fwh19.05 - New Class TDockPnel

PostPosted: Mon Oct 05, 2020 4:04 pm
by cnavarro
Dear Vilian, modify your code:

Code: Select all  Expand view


    aRes := {GetSysMetrics(0),GetSysMetrics(1)}
    Aadd(aPos,{ 014, 005, 370, 278 } )
    Aadd(aPos,{ 014, 300, 360, aRes[1] - 10 } )
    Aadd(aPos,{ 390, 300, aRes[2]/3 + 390, aRes[1] - 10 + 300 } )    // This

 


I prefer to design the DockPnels taking as reference the coordinates of the previous dockpnels, so if I modify any of them, the others will be adjusted automatically. As an example:

Code: Select all  Expand view


    oDock[3]  := TDockPnel():New( oWnd )
    WITH OBJECT oDock[3]
      :SetCoors( { | o | XEval( o:oWnd:aControls[ 2 ]:nBottom + 10, o ) }, ;         // o:oWnd:aControls[ 2 ] ---> Equal to: oDock[ 2 ]
                 { | o | XEval( o:oWnd:aControls[ 2 ]:nLeft, o ) }, ;                          // o:oWnd:aControls[ 2 ] ---> Equal to: oDock[ 2 ]
                 { | o | XEval( o:oWnd:aControls[ 2 ]:nBottom + 10 + 300, o ) }, ;     // o:oWnd:aControls[ 2 ] ---> Equal to: oDock[ 2 ]
                 { | o | XEval( o:oWnd:aControls[ 2 ]:nRight, o ) } )                          // o:oWnd:aControls[ 2 ] ---> Equal to: oDock[ 2 ]
.../...


 

Re: Fwh19.05 - New Class TDockPnel

PostPosted: Mon Oct 05, 2020 5:17 pm
by vilian
Thanks you ;)

Re: Fwh19.05 - New Class TDockPnel

PostPosted: Mon Oct 05, 2020 6:59 pm
by vilian
Cristobal,

In some computer with lower resolution, the last tdockpanel is not being shown. How could I use a vertical scroll to allow the user see all of the tdocks ?

Re: Fwh19.05 - New Class TDockPnel

PostPosted: Tue Oct 06, 2020 3:31 am
by cnavarro
There are several ways to solve your problem. Can you provide me with a small self-contained example to better understand what you are saying?

Re: Fwh19.05 - New Class TDockPnel

PostPosted: Tue Oct 06, 2020 1:02 pm
by vilian
Cristobal,

Here is a litle sample. IF you are using a resolution lower than 1600x900, the fourth Tdockpanel is not shown.
Code: Select all  Expand view

#INCLUDE "fivewin.Ch"
FUNCTION Start()
LOCAL oWnd,nWAncho,nWAlto,nCol,nRow,oMenu,lExit:=.f.
       
    nWAncho := Int( GetSysMetrics( 0 ) * 0.90 )
    nWAlto  := Int( GetSysMetrics( 1 ) * 0.95 )
    nCol    := Int( ( GetSysMetrics( 0 ) - nWAncho ) / 2 )
    nRow    := Int( ( GetSysMetrics( 1 ) - nWAlto  ) / 2 ) + 2
   
    DEFINE WINDOW oWnd FROM nRow, nCol TO nWAlto + nRow, nWAncho + nCol ;
           PIXEL TITLE "Teste" MENU oMenu VSCROLL ;
           COLOR CLR_WHITE, Rgb( 182, 182, 182 )
         
           CreateDocks(oWnd)
       
    ACTIVATE WINDOW oWnd MAXIMIZED ;
                VALID (lExit:=.t.)
       
    StopUntil( { || lExit  } )        

RETURN nil
       
STATIC FUNCTION CreateDocks(oWnd)
LOCAL aRes[2],aPos:={},oFnt,oDock[4]
   
    DEFINE FONT oFnt NAME "CALIBRI" SIZE 0,-16
   
    aRes := {GetSysMetrics(0),GetSysMetrics(1)}
    Aadd(aPos,{014,005,370,278})
    Aadd(aPos,{014,300,360,aRes[1]-20})
    Aadd(aPos,{ 390, 300, aRes[2]/3 + 390, aRes[1] - 20 + 300 } )

    oDock[1]  := TDockPnel():New( oWnd )
    WITH OBJECT oDock[1]
        :SetCoors( aPos[1,1], aPos[1,2], aPos[1,3], aPos[1,4] )
        :SetHeightCaption( 40 )
        :SetBorderSize( 4 )
        :SetCaption( "Calendário" )
        :SetColors( CLR_WHITE, METRO_OLIVE, , )
        :SetFont( oFnt )
        :cAlignText  := "CC"
        :SetCtrlsPnel( { | o, nT, nL, nH, nW | DefDialog(  o, nT, nL, nH, nW, 1 ) } )
        :Activate()
    END
   
    oDock[2]  := TDockPnel():New( oWnd )
    WITH OBJECT oDock[2]
        :SetCoors( aPos[2,1], aPos[2,2], aPos[2,3], aPos[2,4] )
        :SetHeightCaption( 40 )
        :SetBorderSize( 4 )
        :SetCaption( "Autorizações" )
        :SetColors( CLR_WHITE, METRO_OLIVE, , )
        :SetFont( oFnt )
        :cAlignText  := "CC"
        :SetCtrlsPnel( { | o, nT, nL, nH, nW | DefDialog(  o, nT, nL, nH, nW, 2 ) } )
        :Activate()
    END  

    oDock[3]  := TDockPnel():New( oWnd )
    WITH OBJECT oDock[3]
         :SetCoors( { | o | XEval( o:oWnd:aControls[ 2 ]:nBottom + 10, o ) }, ;        
                    { | o | XEval( o:oWnd:aControls[ 2 ]:nLeft, o ) }, ;                
                    { | o | XEval( o:oWnd:aControls[ 2 ]:nBottom + 10 + 300, o ) }, ;  
                    { | o | XEval( o:oWnd:aControls[ 2 ]:nRight, o ) } )                  
        :SetHeightCaption( 40 )
        :SetBorderSize( 4 )
        :SetCaption( "Faturamento" )
        :SetColors( CLR_WHITE, METRO_OLIVE, , )
        :SetFont( oFnt )
        :cAlignText  := "CC"
        :SetCtrlsPnel( { | o, nT, nL, nH, nW | DefDialog(  o, nT, nL, nH, nW, 3 ) } )
        :Activate()
    END  
   
    oDock[4]  := TDockPnel():New( oWnd )
    WITH OBJECT oDock[4]
         :SetCoors( { | o | XEval( o:oWnd:aControls[ 3 ]:nBottom + 10, o ) }, ;        
                    { | o | XEval( o:oWnd:aControls[ 3 ]:nLeft, o ) }, ;                
                    { | o | XEval( o:oWnd:aControls[ 3 ]:nBottom + 10 + 300, o ) }, ;  
                    { | o | XEval( o:oWnd:aControls[ 3 ]:nRight, o ) } )                  
        :SetHeightCaption( 40 )
        :SetBorderSize( 4 )
        :SetCaption( "Baixas" )
        :SetColors( CLR_WHITE, METRO_OLIVE, , )
        :SetFont( oFnt )
        :cAlignText  := "CC"
        :SetCtrlsPnel( { | o, nT, nL, nH, nW | DefDialog(  o, nT, nL, nH, nW, 4 ) } )
        :Activate()
    END  
    oFnt:End()
   
RETURN nil
   
   
STATIC FUNCTION DefDialog( oP, nT, nL, nH, nW, nD )
LOCAL oCol,k
   
    IF nD = 1
                                                               
    ELSEIF nD = 2
    ELSEIF nD = 3      
    ELSEIF nD = 4  
    ENDIF  
     
RETURN nil  
 

Re: Fwh19.05 - New Class TDockPnel

PostPosted: Tue Oct 06, 2020 5:15 pm
by cnavarro
Look
Image

Code: Select all  Expand view

    oDock[1]  := TDockPnel():New( oWnd )
    WITH OBJECT oDock[1]
        :SetCoors( aPos[1,1], aPos[1,2], aPos[1,3], aPos[1,4] )
        :SetHeightCaption( 40 )
        :SetBorderSize( 4 )
        :SetCaption( "Calendário" )
        :SetColors( CLR_WHITE, METRO_OLIVE, , )
        :SetFont( oFnt )
        :cAlignText  := "CC"
        :SetCtrlsPnel( { | o, nT, nL, nH, nW | DefDialog(  o, nT, nL, nH, nW, 1 ) } )
        :Activate()
    END
   
    oDock[2]  := TDockPnel():New( oWnd )
    WITH OBJECT oDock[2]
        :SetCoors( aPos[2,1], aPos[2,2], Int( aRes[ 1 ] / 6 ), aPos[2,4] )
        :SetHeightCaption( 40 )
        :SetBorderSize( 4 )
        :SetCaption( "Autorizações" )
        :SetColors( CLR_WHITE, METRO_OLIVE, , )
        :SetFont( oFnt )
        :cAlignText  := "CC"
        :SetCtrlsPnel( { | o, nT, nL, nH, nW | DefDialog(  o, nT, nL, nH, nW, 2 ) } )
        :Activate()
    END  

    oDock[3]  := TDockPnel():New( oWnd )
    WITH OBJECT oDock[3]
      :SetCoors( { | o | XEval( o:oWnd:aControls[ 2 ]:nBottom + 10, o ) }, ;
                 { | o | XEval( o:oWnd:aControls[ 2 ]:nLeft, o ) }, ;
                 { | o | Int( 2 * aRes[ 1 ] / 6 ) + 20 }, ; //XEval( o:oWnd:aControls[ 2 ]:nBottom + 10 + 300, o ) }, ;
                 { | o | XEval( o:oWnd:aControls[ 2 ]:nRight, o ) } )
      //  :SetCoors( aPos[3,1], aPos[3,2], aPos[3,3], aPos[3,4] )
        :SetHeightCaption( 40 )
        :SetBorderSize( 4 )
        :SetCaption( "Faturamento" )
        :SetColors( CLR_WHITE, METRO_OLIVE, , )
        :SetFont( oFnt )
        :cAlignText  := "CC"
        :SetCtrlsPnel( { | o, nT, nL, nH, nW | DefDialog(  o, nT, nL, nH, nW, 3 ) } )
        :Activate()
    END  

   oDock[4]  := TDockPnel():New( oWnd )
    WITH OBJECT oDock[4]
         :SetCoors( { | o | XEval( o:oWnd:aControls[ 3 ]:nBottom + 10, o ) }, ;        
                    { | o | XEval( o:oWnd:aControls[ 3 ]:nLeft, o ) }, ;                
                    { | o | Int( 3 * aRes[ 1 ] / 6 ) + 30 }, ; //XEval( o:oWnd:aControls[ 3 ]:nBottom + 10 + 300, o ) }, ;  
                    { | o | XEval( o:oWnd:aControls[ 3 ]:nRight, o ) } )                  
        :SetHeightCaption( 40 )
        :SetBorderSize( 4 )
        :SetCaption( "Baixas" )
        :SetColors( CLR_WHITE, METRO_OLIVE, , )
        :SetFont( oFnt )
        :cAlignText  := "CC"
        :SetCtrlsPnel( { | o, nT, nL, nH, nW | DefDialog(  o, nT, nL, nH, nW, 4 ) } )
        :Activate()
    END
 


Another code
Code: Select all  Expand view

    oDock[1]  := TDockPnel():New( oWnd )
    WITH OBJECT oDock[1]
        :SetCoors( aPos[1,1], aPos[1,2], aPos[1,3], aPos[1,4] )
        :SetHeightCaption( 40 )
        :SetBorderSize( 4 )
        :SetCaption( "Calendário" )
        :SetColors( CLR_WHITE, METRO_OLIVE, , )
        :SetFont( oFnt )
        :cAlignText  := "CC"
        :SetCtrlsPnel( { | o, nT, nL, nH, nW | DefDialog(  o, nT, nL, nH, nW, 1 ) } )
        :Activate()
    END
   
    oDock[2]  := TDockPnel():New( oWnd )
    WITH OBJECT oDock[2]
        :SetCoors( aPos[2,1], aPos[2,2], Int( aRes[ 1 ] / 6 ), aPos[2,4] )
        :SetHeightCaption( 40 )
        :SetBorderSize( 4 )
        :SetCaption( "Autorizações" )
        :SetColors( CLR_WHITE, METRO_OLIVE, , )
        :SetFont( oFnt )
        :cAlignText  := "CC"
        :SetCtrlsPnel( { | o, nT, nL, nH, nW | DefDialog(  o, nT, nL, nH, nW, 2 ) } )
        :Activate()
    END  

    oDock[3]  := TDockPnel():New( oWnd )
    WITH OBJECT oDock[3]
      :SetCoors( { | o | XEval( o:oWnd:aControls[ 2 ]:nBottom + 10, o ) }, ;
                 { | o | XEval( o:oWnd:aControls[ 2 ]:nLeft, o ) }, ;// { | o | Int( 2 * aRes[ 1 ] / 6 ) + 20 }, ;
                 { | o | XEval( o:oWnd:aControls[ 2 ]:nBottom + 10 + Int( aRes[ 1 ] / 6 ) , o ) }, ;
                 { | o | XEval( o:oWnd:aControls[ 2 ]:nRight, o ) } )
      //  :SetCoors( aPos[3,1], aPos[3,2], aPos[3,3], aPos[3,4] )
        :SetHeightCaption( 40 )
        :SetBorderSize( 4 )
        :SetCaption( "Faturamento" )
        :SetColors( CLR_WHITE, METRO_OLIVE, , )
        :SetFont( oFnt )
        :cAlignText  := "CC"
        :SetCtrlsPnel( { | o, nT, nL, nH, nW | DefDialog(  o, nT, nL, nH, nW, 3 ) } )
        :Activate()
    END  

   oDock[4]  := TDockPnel():New( oWnd )
    WITH OBJECT oDock[4]
         :SetCoors( { | o | XEval( o:oWnd:aControls[ 3 ]:nBottom + 10, o ) }, ;        
                    { | o | XEval( o:oWnd:aControls[ 3 ]:nLeft, o ) }, ; //  { | o | Int( 3 * aRes[ 1 ] / 6 ) + 30 }, ;
                    { | o | XEval( o:oWnd:aControls[ 3 ]:nBottom + 10 + Int( aRes[ 1 ] / 6 ) , o ) }, ;
                    { | o | XEval( o:oWnd:aControls[ 3 ]:nRight, o ) } )                  
        :SetHeightCaption( 40 )
        :SetBorderSize( 4 )
        :SetCaption( "Baixas" )
        :SetColors( CLR_WHITE, METRO_OLIVE, , )
        :SetFont( oFnt )
        :cAlignText  := "CC"
        :SetCtrlsPnel( { | o, nT, nL, nH, nW | DefDialog(  o, nT, nL, nH, nW, 4 ) } )
        :Activate()
    END
 

Re: Fwh19.05 - New Class TDockPnel

PostPosted: Tue Oct 06, 2020 5:24 pm
by cnavarro
For scroll, wait please

Re: Fwh19.05 - New Class TDockPnel

PostPosted: Tue Oct 06, 2020 5:29 pm
by vilian
Did you reduce the height of tDockPnel 2,3 and 4 ? In can't reduce the height of Tdockpnel. I must scroll the windows to see those tdockpnel that doesn't fit in the window.
What is the screeen's resolution of your windows ? Please, decrease it and try again.