TDockPnel sobre dialogo

Post Reply
User avatar
leandro
Posts: 958
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

TDockPnel sobre dialogo

Post 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
Saludos
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: TDockPnel sobre dialogo

Post by cnavarro »

Leandro, pasa toda la creación de DOCKS a una function independiente, y la llamas en el ON INIT del ACTIVATE DIALOG
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
leandro
Posts: 958
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: TDockPnel sobre dialogo

Post 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
 
Saludos
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
User avatar
leandro
Posts: 958
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: TDockPnel sobre dialogo

Post 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.
Saludos
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
User avatar
leandro
Posts: 958
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: TDockPnel sobre dialogo

Post 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.
Saludos
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: TDockPnel sobre dialogo

Post by karinha »

Creo que:

Code: Select all

C:\XHBBCC74\lib\gtwin.Lib

ó:

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

Saludos.
João Santos - São Paulo - Brasil
User avatar
leandro
Posts: 958
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: TDockPnel sobre dialogo

Post 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.
Saludos
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: TDockPnel sobre dialogo

Post 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.
João Santos - São Paulo - Brasil
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: TDockPnel sobre dialogo

Post 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
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Post Reply