Page 1 of 1

TDockPnel sobre dialogo

Posted: Sun Feb 07, 2021 5:25 pm
by leandro
Buenas tardes para todos, de nuevo yo.

Estoy intentando colocar un TDockPnel sobre un dialogo, pero no logro el mismo resultado.

Code: Select all

Function TestDockPnel()

local nCol
local nRow
Local nTotLargo := 0
Local cUrl := "http://forums.fivetechsupport.com/viewforum.php?f=6"
Local nAncFinal := 0
Local nAltFinal := 0

nWAncho   := Int( GetSysMetrics( 0 ) * 0.95 )

nWAlto    := Int( GetSysMetrics( 1 ) * 0.95 )
nCol      := Int( ( GetSysMetrics( 0 ) - nWAncho ) / 2 )
nRow      := Int( ( GetSysMetrics( 1 ) - nWAlto  ) / 2 )

nAltFinal := (nWAlto-20) + nRow
nAncFinal := (nWAncho) + nCol

DEFINE DIALOG oWindow FROM nRow, nCol TO nAltFinal, nAncFinal ; 
PIXEL TITLE "TDockPnel sobre dialogo" ;
COLOR CLR_WHITE, Rgb( 182, 182, 182 ) 

    oDock1  := TDockPnel():New( oWindow )
    WITH OBJECT oDock1
        :SetHeightCaption( 30 )
        :SetCoors( { | o | 10 }, ;
        { | o | 10 }, ;
        { | o | Int( o:oWnd:nHeight  ) - 50 }, ;
        { | o | (Int( o:oWnd:nWidth / 12 )*8) - XEVal( o:nLeft, o ) } )
        :SetCaption( { | o | "Título" } )
        :SetColors( CLR_WHITE, CLR_RED , Rgb( 88, 88, 88 ), CLR_HGRAY )
        :SetFont( oFont4 )
        :lLeftImgs   := .F.
        :SetBorderSize( 4 )
        :SetCtrlsPnel( { | o, nT, nL, nH, nW, oB | oB := ShowPageWeb( o, cUrl, nT, nL, nH, nW ) }  )      
        :bRClicked   := { || MsgInfo( oDock1:oWnd:aControls[ 1 ]:ClassName() ) }
        :Activate()
    END
    
    oDock2  := TDockPnel():New( oWindow )
    WITH OBJECT oDock2
        :SetHeightCaption( 30 )
        :SetCoors( { | o | XEval( o:oWnd:aControls[ 1 ]:nTop, o ) }, ;
        { | o | XEval( o:oWnd:aControls[ 1 ]:nRight, o ) + 10 }, ;
        { | o | XEval( o:oWnd:aControls[ 1 ]:nBottom, o ) - 1 }, ;
        { | o | (Int( o:oWnd:nWidth / 12 )*4) + XEval( o:nLeft, o ) - 25 } )
        :SetCaption( { | o | "Información" } )
        :SetColors( CLR_WHITE, Rgb( 0,120,215 ) , Rgb( 88, 88, 88 ), CLR_HGRAY )
        :SetBorderSize( 4 )
        :SetFont( oFont4 )
        :lLeftImgs   := .F.
        :Activate()
    END 

ACTIVATE DIALOG oWindow 
 
Image

Re: TDockPnel sobre dialogo

Posted: Sun Feb 07, 2021 8:54 pm
by cnavarro
Leandro, pasa toda la creación de DOCKS a una function independiente, y la llamas en el ON INIT del ACTIVATE DIALOG

Re: TDockPnel sobre dialogo

Posted: Mon Feb 08, 2021 1:54 am
by leandro
Amigo muchas gracias por las respuestas, pero ahora se descuadran algunos márgenes y no logro entender como ajustarlos, y cuando hago clic sobre la casilla de usuario, sale un cuadro gris el cual no salía cuando estaba definida sobre una ventana.

También sucede que si cambio en ancho del caption, este también afecta el ancho del bottom.

Image

Code: Select all

FUNCTION inicioprueba()
Local oDlgIc

Define Font oFont Name "Calibri" Size 0,-12 Bold
Define Font oFont1 Name "Calibri" Size 0,-13
Define Font oFont2 Name "Calibri" Size 0,-16 Bold

nWAncho   := Int( GetSysMetrics( 0 ) * 0.95 )
nWAlto    := Int( GetSysMetrics( 1 ) * 0.95 )
nCol      := Int( ( GetSysMetrics( 0 ) - nWAncho ) / 2 )
nRow      := Int( ( GetSysMetrics( 1 ) - nWAlto  ) / 2 )

nAltFinal := (nWAlto-20) + nRow
nAncFinal := (nWAncho) + nCol

DEFINE DIALOG oDlgIc FROM nRow, nCol TO nAltFinal, nAncFinal ; 
PIXEL TITLE "| HYMPLUS / LYMA - Sistemas de Información |" ;
COLOR CLR_WHITE, Rgb( 182, 182, 182 )   


ACTIVATE DIALOG oDlgIc ON INIT CrearPaneles(oDlgIc)
Return nil

Function CrearPaneles(oDlg)

oDock1  := TDockPnel():New( oDlg )
WITH OBJECT oDock1
    :SetHeightCaption( 30 )
    :SetCoors( { | o | 10 }, ;
    { | o | 10 }, ;
    { | o | Int( o:oWnd:nHeight  ) - 50 }, ;
    { | o | (Int( o:oWnd:nWidth / 12 )*8) - XEVal( o:nLeft, o ) } )
    :SetCaption( { | o | "Información de Interes" } )
    :SetColors( CLR_WHITE, CLR_RED , Rgb( 88, 88, 88 ), CLR_HGRAY )
    :SetFont( oFont4 )
    :lLeftImgs   := .F.
    :lBottom := .F. 
    :SetBorderSize( 4 )
    :SetCtrlsPnel( { | o, nT, nL, nH, nW, oB | oB := ShowPageWeb( o, cUrl, nT, nL, nH, nW ) }  )      
    :bRClicked   := { || MsgInfo( oDock1:oWnd:aControls[ 1 ]:ClassName() ) }
    :Activate()
END

oDock2  := TDockPnel():New( oDlg )
WITH OBJECT oDock2
    :SetHeightCaption( 30 )
    :SetCoors( { | o | XEval( o:oWnd:aControls[ 1 ]:nTop, o ) }, ;
    { | o | XEval( o:oWnd:aControls[ 1 ]:nRight, o ) + 10 }, ;
    { | o | XEval( o:oWnd:aControls[ 1 ]:nBottom, o ) - 1 }, ;
    { | o | (Int( o:oWnd:nWidth / 12 )*4) + XEval( o:nLeft, o ) - 25 } )
    :SetCaption( { | o | "Inicio de Sesión" } )
    :SetColors( CLR_WHITE, CLR_RED , Rgb( 88, 88, 88 ), CLR_HGRAY )
    :SetBorderSize( 4 )
    :SetFont( oFont4 )
    :lLeftImgs   := .F.
    :lBottom := .F.
    :SetCtrlsPnel( { | o, nT, nL, nH, nW | MyTest1(  o, nT, nL, nH, nW, oRsEmp, lRetorna ) } )
    :Activate()
END  

Return nil
 

Re: TDockPnel sobre dialogo

Posted: Tue Feb 09, 2021 1:18 am
by leandro
Buenas noches,

Logre detectar que el cuadro gris sale, cuando coloco la clausula PASSWORD en el GET y las mayúsculas están activadas, sale en el mismo instante que sale ese cuadro amarillo en la parte inferior del GET.

Image

De antemano gracias.

Re: TDockPnel sobre dialogo

Posted: Tue Feb 09, 2021 3:01 am
by leandro
Buenas noches sigo investigando.

Haciendo mas pruebas, pude detectar que si compilo desde consola en los samples, ese cuadrito amarillo no sale. Como puedo quitarlo? que librería se encarga de esas funciones?

De antemano gracias.

Re: TDockPnel sobre dialogo

Posted: Tue Feb 09, 2021 11:04 am
by karinha
Creo que:

Code: Select all

C:\XHBBCC74\lib\gtwin.Lib

ó:

C:\XHBBCC74\lib\gtgui.Lib
 
Intenta y reporte.

Saludos.

Re: TDockPnel sobre dialogo

Posted: Tue Feb 09, 2021 3:22 pm
by leandro
Amigo karinha muchas gracias por responder.

Pero te cuento que no funciono, probé con cada una por aparte y hasta con las dos al tiempo. Pero no funciono, sigue saliendo ese cuadro gris y también el cuadro amarillo.

Re: TDockPnel sobre dialogo

Posted: Tue Feb 09, 2021 3:30 pm
by karinha
Que hace esto? Y en la classe? ó no tiene el código? Habla con mister Navarro.

Code: Select all

 
:SetColors( CLR_WHITE, CLR_RED , Rgb( 88, 88, 88 ), CLR_HGRAY )
 
Saludos.

Re: TDockPnel sobre dialogo

Posted: Sun Feb 14, 2021 6:12 pm
by cnavarro
El código fuente no lo he publicado
Efectivamente :SetColor define los colores del texto y fondo tanto del panel principal como el del titulo