FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour bug FWH2606 en la clase TDockPnel
Posts: 1828
Joined: Wed Oct 26, 2005 02:49 PM

bug FWH2606 en la clase TDockPnel

Posted: Thu Jun 18, 2026 03:38 PM

Hola buenos d铆as para todos, estamos compilando la aplicaci贸n con la nueva versi贸n de fwh2606, pero tenemos el siguiente error, al intentar usar la clase TDockPnel, pasa en todas las interfases en donde hacemos el llamado a este objeto.

El error es el siguiente:

Aplicaci贸n
==========
   Ruta y nombre: C:\cmplar_64\hymlyma.exe (64 bits)
   Tama帽o: ********* bytes
   Versi贸n del compilador: xHarbour 1.3.2 Intl. (SimpLex) (Build 20251210)
   Versi贸n de FiveWin: FWH 26.03
   Versi贸n del compilador C: LLVM/Clang C 5.0.2 (64-bit)
   Windows 8 64 Bits, version: 6.2, Build 9200 

   Tiempo desde inicio: 7 sec
   Error ocurrido en: 18/06/2026, 10:26:38
   Descripci贸n del error: Error BASE/1081  Error de argumento: +
   Argumentos:
     [   1] = B   {|| ... }
     [   2] = N   203

Pila de llamadas
================
   Llamado desde: C:\fwteam\source/classes/control.prg => (b)TCONTROL:TCONTROL( 211 )
   Llamado desde:  => TDOCKPNEL:_NHEIGHT( 0 )
   Llamado desde: C:\fwteam\source/internal/tdockpnel.prg => TDOCKPNEL:SETCOORS( 303 )
   Llamado desde: .\PRG\R32_trab.prg => PINFOTRABAJADORES( 341 )
   Llamado desde: .\PRG\R32_trab.prg => R32_TRAB( 97 )
   Llamado desde: .\PRG\Alyma.prg => (b)TLYMA:AUTORIZA( 1738 )
   Llamado desde: .\PRG\Alyma.prg => TLYMA:AUTORIZA( 1738 )
   Llamado desde: .\PRG\R32_menu.prg => (b)PESTANANOMINA( 1287 )
   Llamado desde: C:\fwteam\source/classes/trbtn.prg => TRBTN:CLICK( 720 )
   Llamado desde: C:\fwteam\source/classes/trbtn.prg => TRBTN:LBUTTONUP( 923 )
   Llamado desde: C:\fwteam\source/classes/control.prg => TCONTROL:HANDLEEVENT( 1896 )
   Llamado desde: C:\fwteam\source/classes/trbtn.prg => TRBTN:HANDLEEVENT( 1575 )
   Llamado desde: C:\fwteam\source/classes/window.prg => _FWH( 1076 )
   Llamado desde:  => WINRUN( 0 )
   Llamado desde: C:\fwteam\source/classes/window.prg => TMDIFRAME:ACTIVATE( 1205 )
   Llamado desde: .\PRG\R32_menu.prg => VTNAPRINCIPAL( 1215 )
   Llamado desde: .\PRG\R32_menu.prg => MAIN( 126 )

En esta l铆nea es en donde hace referencia a nuestra app

Saludos
LEANDRO AREVALO
Bogot谩 (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 44508
Joined: Thu Oct 06, 2005 05:47 PM

Re: bug FWH2606 en la clase TDockPnel

Posted: Thu Jun 18, 2026 06:13 PM

Estimado Leandro,

Usa 10 en vez de usar { | o | 10 }, en ambos casos

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1828
Joined: Wed Oct 26, 2005 02:49 PM

Re: bug FWH2606 en la clase TDockPnel

Posted: Thu Jun 18, 2026 11:32 PM

Ya lo ajustamos como lo indicaste, pero hay mas problemas, se generan una buena cantidad de errores, luego de corregir eso, parece no cargar los datos de un xbrowse (array), y de ah铆 para all谩 inicia con mas errores.

Me puedes ayudar con instrucciones para compilar un ejemplo que tenga la clase TDockPnel, ya que no veo ninguno en la carpeta samples.

De antemano gracias

Saludos
LEANDRO AREVALO
Bogot谩 (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 44508
Joined: Thu Oct 06, 2005 05:47 PM

Re: bug FWH2606 en la clase TDockPnel

Posted: Fri Jun 19, 2026 03:54 AM

Ve copiando aqui los errores que te aparezcan, gracias

Los ejemplos estan en samples\test\ui\testdock...

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44508
Joined: Thu Oct 06, 2005 05:47 PM

Re: bug FWH2606 en la clase TDockPnel

Posted: Fri Jun 19, 2026 04:02 AM

Aqui tienes un nuevo ejemplo:

#include "../../../include/fivewin.ch"
#include "colores.ch"

Static oFont
Static oFontB
Static oFontTitle

//----------------------------------------------------------------------------//

Function Main()

   DEFINE FONT oFont  NAME "Tahoma" SIZE 0,-11
   DEFINE FONT oFontB NAME "Tahoma" SIZE 0,-14 BOLD
   DEFINE FONT oFontTitle NAME "Calibri" SIZE 0,-16

   EjemploDockPnel()

   oFont:End()
   oFontB:End()
   oFontTitle:End()

Return nil

//----------------------------------------------------------------------------//

Static Function EjemploDockPnel()

   local oWnd
   local oDock1
   local oDock2
   local oDock3
   local oDock4

   DEFINE WINDOW oWnd FROM 0, 0 TO 600, 900 ;
      PIXEL TITLE "Ejemplo TDockPnel" ;
      COLOR CLR_WHITE, Rgb( 182, 182, 182 )

  // Panel izquierdo - Barra lateral
  oDock1 := TDockPnel():New( oWnd )
  WITH OBJECT oDock1
     :SetCoors( 10, 10, 560, 210 )
     :SetHeightCaption( 40 )
     :SetBorderSize( 4 )
     :SetCaption( "Panel Lateral" )
     :SetColors( CLR_WHITE, METRO_STEEL, METRO_TEAL, CLR_WHITE )
     :SetFont( oFontTitle )
     :cAlignText := "CC"
     :SetCtrlsPnel( { | o, nT, nL, nH, nW | CreaBotonesLateral( o, nT, nL, nH, nW ) } )
     :Activate()
  END

  // Panel central superior
  oDock2 := TDockPnel():New( oWnd )
  WITH OBJECT oDock2
     :SetCoors( 10, 220, 280, 600 )
     :SetHeightCaption( 40 )
     :SetBorderSize( 4 )
     :SetCaption( "Panel Superior" )
     :SetColors( CLR_WHITE, METRO_OLIVE, , )
     :SetFont( oFontTitle )
     :SetCtrlsPnel( { | o, nT, nL, nH, nW | CreaBrowse( o, nT, nL, nH, nW ) } )
     :Activate()
  END

  // Panel central inferior
  oDock3 := TDockPnel():New( oWnd )
  WITH OBJECT oDock3
     :SetCoors( 290, 220, 560, 600 )
     :SetHeightCaption( 40 )
     :SetBorderSize( 4 )
     :SetCaption( "Panel Inferior" )
     :SetColors( CLR_WHITE, METRO_CRIMSON, , )
     :SetFont( oFontTitle )
     :SetCtrlsPnel( { | o, nT, nL, nH, nW | CreaInfo( o, nT, nL, nH, nW ) } )
     :Activate()
  END

  // Panel derecho
  oDock4 := TDockPnel():New( oWnd )
  WITH OBJECT oDock4
     :SetCoors( 10, 610, 560, 880 )
     :SetHeightCaption( 40 )
     :SetBorderSize( 4 )
     :SetCaption( "Panel Derecho" )
     :SetColors( CLR_WHITE, METRO_COBALT, , )
     :SetFont( oFontTitle )
     :lBottom := .T.  // T鈹溌ulo abajo
     :SetCtrlsPnel( { | o, nT, nL, nH, nW | CreaForm( o, nT, nL, nH, nW ) } )
     :Activate()
  END

   ACTIVATE WINDOW oWnd MAXIMIZED

Return nil

//----------------------------------------------------------------------------//
// Crea botones en el panel lateral
//----------------------------------------------------------------------------//

Static Function CreaBotonesLateral( oP, nT, nL, nH, nW )

   local oBtn1, oBtn2, oBtn3, oBtn4

   DEFAULT nT := 5
   DEFAULT nL := 5
   DEFAULT nH := oP:nHeight - 10
   DEFAULT nW := oP:nWidth - 10

   @ nT, nL BUTTON oBtn1 PROMPT "Archivo" SIZE nW, 40 PIXEL OF oP ;
      ACTION MsgInfo( "Opci鈹溾攤n Archivo" )

   @ nT + 45, nL BUTTON oBtn2 PROMPT "Editar" SIZE nW, 40 PIXEL OF oP ;
      ACTION MsgInfo( "Opci鈹溾攤n Editar" )

   @ nT + 90, nL BUTTON oBtn3 PROMPT "Ver" SIZE nW, 40 PIXEL OF oP ;
      ACTION MsgInfo( "Opci鈹溾攤n Ver" )

   @ nT + 135, nL BUTTON oBtn4 PROMPT "Ayuda" SIZE nW, 40 PIXEL OF oP ;
      ACTION MsgInfo( "Opci鈹溾攤n Ayuda" )

Return nil

//----------------------------------------------------------------------------//
// Crea un browse en el panel
//----------------------------------------------------------------------------//

Static Function CreaBrowse( oP, nT, nL, nH, nW )

   local oBrw
   local aData := { { "Enero", 1000, 1200 }, ;
                    { "Febrero", 1100, 1300 }, ;
                    { "Marzo", 1050, 1800 }, ;
                    { "Abril", 1825, 1975 }, ;
                    { "Mayo", 2000, 1670 }, ;
                    { "Junio", 970, 1025 }, ;
                    { "Julio", 1150, 1600 }, ;
                    { "Agosto", 1250, 1700 } }

   DEFAULT nT := 2
   DEFAULT nL := 2
   DEFAULT nH := oP:nHeight - 4
   DEFAULT nW := oP:nWidth - 4

   @ nT, nL XBROWSE oBrw SIZE nW, nH PIXEL OF oP ;
      DATASOURCE aData ;
      COLUMNS 1, 2, 3 ;
      HEADERS "Mes", "Ventas", "Costos" ;
      LINES STYLE FLAT

   WITH OBJECT oBrw
      :lRecordSelector := .F.
      :lHScroll := .F.
      :lVScroll := .F.
      :l2007 := .F.
      :nStretchCol := 1
      :lFitGridHeight := .T.
      :nHeaderHeight := 28
      :nRowHeight := 24
      :nMarqueeStyle := MARQSTYLE_HIGHLROW
      :bClrStd := { || { Rgb( 88, 88, 88 ), CLR_WHITE } }
      :lFullGrid := .T.
      :SetFont( oFont )
      AEVal( :aCols, { | o | o:cEditPicture := "9,999" }, 2, 3 )
      :CreateFromCode()
   END

Return oBrw

//----------------------------------------------------------------------------//
// Crea un gr鈹溍璮ico en el panel
//----------------------------------------------------------------------------//

Static Function CreaInfo( oP, nT, nL, nH, nW )

   local oBtn1, oBtn2

   DEFAULT nT := 10
   DEFAULT nL := 10
   DEFAULT nH := oP:nHeight - 20
   DEFAULT nW := oP:nWidth - 20

   @ nT, nL BUTTON oBtn1 PROMPT "Panel Inferior" PIXEL SIZE nW, 40 OF oP ;
      ACTION MsgInfo( "Este es un ejemplo de TDockPnel" )

   @ nT + 50, nL BUTTON oBtn2 PROMPT "Informaci鈹溾攤n" PIXEL SIZE nW, 40 OF oP ;
      ACTION MsgInfo( "Los paneles se adaptan al tama鈹溾枓o" )

Return nil

//----------------------------------------------------------------------------//
// Crea un formulario simple
//----------------------------------------------------------------------------//

Static Function CreaForm( oP, nT, nL, nH, nW )

   local oName, oEmail, oBtn
   local cName := Space( 40 )
   local cEmail := Space( 40 )

   DEFAULT nT := 10
   DEFAULT nL := 10

   @ nT, nL GET oName VAR cName PIXEL SIZE nW - 20, 24 OF oP ;
      CUEBANNER "Nombre"

   @ nT + 40, nL GET oEmail VAR cEmail PIXEL SIZE nW - 20, 24 OF oP ;
      CUEBANNER "Email"

   @ nT + 85, nL + 40 BUTTON oBtn PROMPT "Enviar" PIXEL SIZE 100, 30 OF oP ;
      ACTION MsgInfo( "Nombre: " + AllTrim( cName ) + CRLF + ;
                      "Email: " + AllTrim( cEmail ) )

Return nil

//----------------------------------------------------------------------------//
regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion