FWH 26.03 buscamos betatesters

Locked
User avatar
Antonio Linares
Site Admin
Posts: 44508
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 717 times
Been thanked: 311 times
Contact:

Re: FWH 26.03 buscamos betatesters

Post by Antonio Linares »

karinha wrote: Mon Mar 30, 2026 5:03 pm

Master, FIVEGURU.PRG

Code: Select all | Expand

Application
===========
   Path and name: C:\FWH2603\samples\fiveguru.exe (32 bits)
   Size: 5,038,080 bytes
   Compiler version: xHarbour 1.3.2 Intl. (SimpLex) (Build 20260103)
   FiveWin version: FWH 26.03
   C compiler version: Borland/Embarcadero C++ 7.7 (32-bit)
   Windows 11 64 Bits, version: 6.2, Build 9200 

   Time from start: 19 sec
   Error occurred at: 03/30/26, 14:01:06
   Error description: Error BASE/1081  Argument error: +
   Args:
     [   1] = C         MENUITEM "
     [   2] = U   

Stack Calls
===========
   Called from: source\classes\menu.prg => GENSUBMENU( 1522 )
   Called from: source\classes\menu.prg => TMENU:CGENPRG( 1508 )
   Called from: source\classes\window.prg => TMDIFRAME:CGENPRG( 1488 )
   Called from: fiveguru.prg => (b)MAINQUERY( 61 )
   Called from: source\classes\button.prg => TBUTTON:CLICK( 207 )
   Called from: source\classes\control.prg => TBUTTON:HANDLEEVENT( 1860 )
   Called from: source\classes\window.prg => _FWH( 487 )
   Called from:  => SENDMESSAGE( 0 )
   Called from: source\classes\dialog.prg => TDIALOG:COMMAND( 535 )
   Called from:  => TWINDOW:HANDLEEVENT( 0 )
   Called from: source\classes\dialog.prg => TDIALOG:HANDLEEVENT( 1290 )
   Called from: source\classes\window.prg => _FWH( 1076 )
   Called from:  => WINRUN( 0 )
   Called from: source\classes\window.prg => TMDIFRAME:ACTIVATE( 1205 )
   Called from: fiveguru.prg => MAIN( 27 )

Arreglado, gracias! :) :!:

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
cmsoft
Posts: 1344
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina
Has thanked: 10 times
Been thanked: 10 times

Re: FWH 26.03 buscamos betatesters

Post by cmsoft »

[quote]Aplicación

Ruta y nombre: C:\fwh16\UNION\UNION.exe (32 bits)
Tamaño: 7,333,376 bytes
Versión del compilador: Harbour 3.2.0dev (r2407221137)
Versión de FiveWin: FWH 26.03
Versión del compilador C: Borland/Embarcadero C++ 7.7 (32-bit)
Windows 10 64 Bits, version: 6.2, Build 9200

Tiempo desde inicio: 39 sec
Error ocurrido en: 30/03/2026, 21:22:32
Descripción del error: Error BASE/1005 No existe la variable de instancia: BOLD
Argumentos:
[ 1] = A {,5007379} length: 2
[ 2] = L .T.

Pila de llamadas

Llamado desde: .\source\prg\tdolpexp.prg => _BOLD( 0 )
Llamado desde: source\classes\xbrowse.prg => TXBROWSE:TOEXCEL( 11307 )
Llamado desde: source\classes\xbrowse.prg => (b)TXBROWSE_REPORT( 10694 )
Llamado desde: source\classes\report.prg => TREPORT:TOEXCEL( 2124 )
Llamado desde: source\classes\rpreview.prg => (b)TPREVIEW( 100 )
Llamado desde: source\classes\rpreview.prg => TPREVIEW:EXPORTTOMSEXCEL( 0 )
Llamado desde: source\classes\rpreview.prg => (b)TPREVIEW_BUILDBUTTONBAR( 411 )
Llamado desde: source\classes\btnbmp.prg => TBTNBMP:CLICK( 820 )
Llamado desde: source\classes\btnbmp.prg => TBTNBMP:LBUTTONUP( 1107 )
Llamado desde: source\classes\control.prg => TCONTROL:HANDLEEVENT( 1896 )
Llamado desde: source\classes\btnbmp.prg => TBTNBMP:HANDLEEVENT( 2150 )
Llamado desde: source\classes\window.prg => _FWH( 4196 )
Llamado desde: source\classes\window.prg => WINRUN( 0 )
Llamado desde: source\classes\window.prg => TMDIFRAME:ACTIVATE( 1205 )
Llamado desde: UNION.prg => MAIN( 79 )[/quote]
Este error me dio al sacar un reporte desde el report del xbrowse y luego intentar enviarlo a excel desde preview

User avatar
Antonio Linares
Site Admin
Posts: 44508
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 717 times
Been thanked: 311 times
Contact:

Re: FWH 26.03 buscamos betatesters

Post by Antonio Linares »

Estimado César,

The error is at xbrowse.prg:11307 where oSheet:Rows(1):Font:Bold := .T. fails because :Bold is being resolved to a
_BOLD accessor in your TDolphin export class (tdolpexp.prg) instead of going through OLE dispatch. The first argument
is an array (length 2), not an OLE Font object.

This suggests that oSheet:Rows(1):Font is returning a TDolphin object instead of the Excel OLE Font object. The
TDolphin library you have linked defines a class with a _BOLD method that conflicts with the OLE property resolution.

The safest fix is to wrap the bold formatting in TRY/CATCH since it's cosmetic:

● Update(source\classes\xbrowse.prg)
⎿  Added 3 lines
11304
11305 // Totals, if needed
11306
11307 + TRY
11308 oSheet:Rows( 1 ):Font:Bold := .T.
11309 oSheet:Rows( nRow ):Font:Bold := .T.
11310 + CATCH
11311 + END
11312
11313 if ValType( nGroupBy ) == 'N'
11314 for nxCol := 1 TO Len( aCols )

● This wraps the bold formatting in TRY/CATCH. The export will work but without bold headers/totals if the TDolphin
class conflict occurs.

However, the root cause is in tdolpexp.prg from the TDolphin library - it defines a class whose _BOLD accessor
interferes with OLE dispatch. You could:

  1. Check if you have a newer version of TDolphin that fixes this

  2. Check if tdolpexp.prg defines a class with DATA Bold that somehow gets mixed into the OLE resolution chain

  3. Alternatively, if you don't need TDolphin export functionality, try not linking tdolpexp.prg into your application

    Would you like me to rebuild the hbc32c lib to include this fix?

✻ Churned for 4m 36s

❯ como llegas a la conclusion de que usa TDolphin ?

● Tienes razón, fue una suposición mía. Vi tdolpexp.prg en el stack trace y asumí que "tdolp" = TDolphin, pero no tengo
forma de saberlo. Es un archivo de tu aplicación UNION (.\source\prg\tdolpexp.prg), no de FWH.

Lo que sí es un hecho del error:

  1. oSheet:Rows(1):Font:Bold := .T. en xbrowse.prg:11307 falla

  2. El :Bold se resuelve a _BOLD en tdolpexp.prg (línea 0 = DATA accessor)

  3. El argumento [1] es un array de longitud 2, no un objeto OLE Font

    ¿Qué contiene tu tdolpexp.prg? Eso ayudaría a entender por qué el OLE dispatch de Excel termina en una clase definida
    ahí. Estás usando TDolphin ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
cmsoft
Posts: 1344
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina
Has thanked: 10 times
Been thanked: 10 times

Re: FWH 26.03 buscamos betatesters

Post by cmsoft »

Antonio Linares wrote: Tue Mar 31, 2026 5:13 am

Estimado César,

The error is at xbrowse.prg:11307 where oSheet:Rows(1):Font:Bold := .T. fails because :Bold is being resolved to a
_BOLD accessor in your TDolphin export class (tdolpexp.prg) instead of going through OLE dispatch. The first argument
is an array (length 2), not an OLE Font object.

This suggests that oSheet:Rows(1):Font is returning a TDolphin object instead of the Excel OLE Font object. The
TDolphin library you have linked defines a class with a _BOLD method that conflicts with the OLE property resolution.

The safest fix is to wrap the bold formatting in TRY/CATCH since it's cosmetic:

● Update(source\classes\xbrowse.prg)
⎿ Added 3 lines
11304
11305 // Totals, if needed
11306
11307 + TRY
11308 oSheet:Rows( 1 ):Font:Bold := .T.
11309 oSheet:Rows( nRow ):Font:Bold := .T.
11310 + CATCH
11311 + END
11312
11313 if ValType( nGroupBy ) == 'N'
11314 for nxCol := 1 TO Len( aCols )

● This wraps the bold formatting in TRY/CATCH. The export will work but without bold headers/totals if the TDolphin
class conflict occurs.

However, the root cause is in tdolpexp.prg from the TDolphin library - it defines a class whose _BOLD accessor
interferes with OLE dispatch. You could:

  1. Check if you have a newer version of TDolphin that fixes this

  2. Check if tdolpexp.prg defines a class with DATA Bold that somehow gets mixed into the OLE resolution chain

  3. Alternatively, if you don't need TDolphin export functionality, try not linking tdolpexp.prg into your application

    Would you like me to rebuild the hbc32c lib to include this fix?

✻ Churned for 4m 36s

❯ como llegas a la conclusion de que usa TDolphin ?

● Tienes razón, fue una suposición mía. Vi tdolpexp.prg en el stack trace y asumí que "tdolp" = TDolphin, pero no tengo
forma de saberlo. Es un archivo de tu aplicación UNION (.\source\prg\tdolpexp.prg), no de FWH.

Lo que sí es un hecho del error:

  1. oSheet:Rows(1):Font:Bold := .T. en xbrowse.prg:11307 falla

  2. El :Bold se resuelve a _BOLD en tdolpexp.prg (línea 0 = DATA accessor)

  3. El argumento [1] es un array de longitud 2, no un objeto OLE Font

    ¿Qué contiene tu tdolpexp.prg? Eso ayudaría a entender por qué el OLE dispatch de Excel termina en una clase definida
    ahí. Estás usando TDolphin ?

Si, estoy usando TDolphin y exporto con la exportar de Xbrowse de una consulta. Crees que es conveniente que toque el código o vos modificas las librerias?

User avatar
karinha
Posts: 8716
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Has thanked: 33 times
Been thanked: 51 times
Contact:

Re: FWH 26.03 buscamos betatesters

Post by karinha »

Maestro, BTNSETUP.PRG, ¿cuál es la ruta correcta a estos dos archivos?

Code: Select all | Expand

#include "..\..\include\WinApi.ch"

DragBtn CURSOR "../../../cursors/dragbtn.cur"

Confusión. jajaja

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
Posts: 8716
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Has thanked: 33 times
Been thanked: 51 times
Contact:

Re: FWH 26.03 buscamos betatesters

Post by karinha »

Maestro, BALANCE.PRG, ¿cuál es el propósito de esta plantilla? ¿Es posible crearla directamente a partir de un archivo *.DBF? ¿Hay una fecha prevista para la versión completa?

Gracias, tks.

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
Posts: 8716
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Has thanked: 33 times
Been thanked: 51 times
Contact:

Re: FWH 26.03 buscamos betatesters

Post by karinha »

Maestro: BIGFOLD.PRG y BIGFOLD.RC -> ERRORS.

Code: Select all | Expand

Application
===========
   Path and name: C:\FWH2603\samples\bigfold.exe (32 bits)
   Size: 5,028,352 bytes
   Compiler version: xHarbour 1.3.2 Intl. (SimpLex) (Build 20260103)
   FiveWin version: FWH 26.03
   C compiler version: Borland/Embarcadero C++ 7.7 (32-bit)
   Windows 11 64 Bits, version: 6.2, Build 9200 

   Time from start: 3 sec
   Error occurred at: 03/31/26, 12:30:26
   Error description: Warning BASE/1004  Message not found: TFOLDER:TDIALOG

Stack Calls
===========
   Called from: source\rtl\tobject.prg => TFOLDER:ERROR( 0 )
   Called from: source\rtl\tobject.prg => TFOLDER:MSGNOTFOUND( 0 )
   Called from: source\rtl\tobject.prg => TFOLDER:TDIALOG( 0 )
   Called from: source\classes\folder.prg => TFOLDER:SETCOLOR( 1366 )
   Called from: source\classes\folder.prg => TFOLDER:REDEFINE( 308 )
   Called from: bigfold.prg => BIGFOLDER( 55 )
   Called from: bigfold.prg => (b)BUILDMENU( 34 )
   Called from: source\classes\menu.prg => TMENU:COMMAND( 1621 )
   Called from: source\classes\window.prg => TWINDOW:COMMAND( 1246 )
   Called from:  => TWINDOW:HANDLEEVENT( 0 )
   Called from: source\classes\window.prg => _FWH( 1076 )
   Called from:  => WINRUN( 0 )
   Called from: source\classes\window.prg => TWINDOW:ACTIVATE( 1205 )
   Called from: bigfold.prg => MAIN( 21 )

Las rutas en ARQUIVOS.RC son todas INCORRECTAS.

Code: Select all | Expand

#define IDC_PUSHBUTTON2 111
#define IDC_CHECKBOX1	111
#define IDC_PUSHBUTTON1	112
#define BITMAP_1	1
// #include "..\..\include\WinApi.ch"
#include "..\include\WinApi.ch"

test DIALOG 9, 30, 298, 194
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "DIALOG_1"
FONT 8, "MS Sans Serif"
{
 DEFPUSHBUTTON "OK", IDOK, 67, 173, 50, 14
 PUSHBUTTON "Cancel", IDCANCEL, 124, 173, 50, 14
 PUSHBUTTON "Help", 998, 180, 173, 50, 14
 CONTROL "", 110, FOLDER32, 0 | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 4, 7, 289, 162
}


one DIALOG 6, 15, 277, 157
STYLE WS_CHILD
FONT 8, "MS Sans Serif"
{
 CONTROL "", 110, "TWBrowse", 0 | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP | WS_VSCROLL, 5, 9, 268, 104
 CONTROL "", 120, "TBtnBmp", 0 | WS_CHILD | WS_VISIBLE, 121, 122, 20, 20
 CONTROL "", -1, "BorShade", BSS_HDIP | BSS_LEFT | WS_CHILD | WS_VISIBLE, 89, 117, 100, 2
 CONTROL "Button", IDC_PUSHBUTTON2, "BorBtn", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 120, 37, 25
}

two DIALOG 6, 15, 277, 189
STYLE WS_CHILD
FONT 8, "MS Sans Serif"
{
 CONTROL "", 110, "TWBrowse", 0 | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 5, 9, 268, 104
 CONTROL "Button", 1, "BorBtn", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 118, 121, 37, 25
 CONTROL "Check", IDC_CHECKBOX1, "BorCheck", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 189, 127, 34, 10
 CONTROL "Button", IDC_PUSHBUTTON1, "BorBtn", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 28, 147, 37, 25
}

three DIALOG 6, 15, 277, 151
STYLE WS_CHILD
FONT 8, "MS Sans Serif"
{
 CONTROL "", 110, "TWBrowse", 0 | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 5, 9, 268, 104
 CONTROL "Button", 1, "BorBtn", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 118, 121, 37, 25
}

four DIALOG 6, 15, 277, 151
STYLE WS_CHILD
FONT 8, "MS Sans Serif"
{
 CONTROL "", 110, "TWBrowse", 0 | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 5, 9, 268, 104
 CONTROL "Button", 1, "BorBtn", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 118, 121, 37, 25
}

five DIALOG 6, 15, 277, 190
STYLE WS_CHILD
FONT 8, "MS Sans Serif"
{
 CONTROL "", 110, "TWBrowse", 0 | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 5, 9, 268, 104
 CONTROL "Button", 1, "BorBtn", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 118, 121, 37, 25
 CONTROL "", -1, "BorShade", BSS_HDIP | BSS_LEFT | WS_CHILD | WS_VISIBLE, 86, 161, 100, 2
}

six DIALOG 6, 15, 277, 151
STYLE WS_CHILD
FONT 8, "MS Sans Serif"
{
 CONTROL "", 110, "TWBrowse", 0 | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 5, 9, 268, 104
 CONTROL "Button", 1, "BorBtn", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 118, 121, 37, 25
}

seven DIALOG 6, 15, 277, 151
STYLE WS_CHILD
FONT 8, "MS Sans Serif"
{
 CONTROL "", 110, "TWBrowse", 0 | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 5, 9, 268, 104
 CONTROL "Button", 1, "BorBtn", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 118, 121, 37, 25
}

// info BITMAP "../../../bitmaps/info.bmp"
info BITMAP "../bitmaps/info.bmp"

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
acuellar
Posts: 1713
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia
Has thanked: 3 times
Been thanked: 15 times

Re: FWH 26.03 buscamos betatesters

Post by acuellar »

Estimado Antonio

En la clase RPREVIEW.PRG

He realizado algunos cambios para mejorar la estética y no está saliendo las vocales con tilde Ej. Página

Code: Select all | Expand

 oBar:bPainted = { || oBar:Say( 8, aCoors[ 4 ]-190, "Página: ",,, ::oFont, .T., .T. ),;
                         oBar:Say( 8, aCoors[ 4 ]-120, +" de "+LTrim( TransForm( Len( ::oDevice:aMeta ), "99999" )),,,::oFont, .T., .T. ) }

Con la versión FWH2512 Sale perfecto.

Saludos,

Adhemar Cuéllar

User avatar
karinha
Posts: 8716
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Has thanked: 33 times
Been thanked: 51 times
Contact:

Re: FWH 26.03 buscamos betatesters

Post by karinha »

Maestro Antônio, un ejemplo espectacular.

Pregunta: ¿Por qué SKINBUTTONS() no funciona con BTNBMP?

Code: Select all | Expand

// C:\FWH\SAMPLES\GETCASE2.PRG con efectos especiais. By <Kapiaba> ORIGINAL: GETCASE.PRG

#include "fivewin.Ch"

#Define CLR_SOFTYELLOW nRGB( 255, 251, 225 ) //-> Amarelo/amarillo Soft.
#define CLR_MYCELESTE1 nRGB( 074, 108, 154 )

FUNCTION Main()

   LOCAL oDlg, oFont, oBtn, oBtn2, oSkinB, oSay, oSay3
   LOCAL aData := { SPACE( 40 ), SPACE( 40 ), SPACE( 40 ) }
   LOCAL aGet[ 3 ]

   SetBalloon( .T. ) // Balloon shape required for tooltips

   oSkinB := TSkinButton():New()
   oSkinB:nClrBorder0_N := RGB( 249, 194, 179 )
   oSkinB:nClrBorder1_N := RGB( 181, 61, 29 )
   oSkinB:aClrNormal    := { { .50, nRGB( 210, 235, 216 ), nRGB( 210, 235, 216 ) } }

   SkinButtons( oSkinB ) // NO FUNCIONA CON BTNBMP.

   SetGetColorFocus()

   tGet():lDisColors  := .F.   // WHEN( .F. )
   tGet():nClrTextDis := CLR_HBLUE
   tGet():nClrPaneDis := CLR_SOFTYELLOW

   DEFINE FONT oFont NAME "Segoe UI Semibold" SIZE 0,-16

   DEFINE DIALOG oDlg SIZE 540, 250 PIXEL TRUEPIXEL FONT oFont ;
      TITLE FWVERSION + " : GET Upper, Lower, Proper Cases - GETCASE2.PRG"

   oDlg:lHelpIcon := .F.
   oDlg:lTransparent := .T.

   @  30, 30 SAY " Upper Case :"  WIDTH 100 GET aGet[ 1 ] VAR aData[ 1 ]     ;
      SIZE 450,32 PIXEL OF oDlg CASE UPPER UPDATE COLOR CLR_BLACK, METRO_ORANGE

   // Efecto especial:
   @  30, 33 SAY oSay PROMPT " Upper Case :" OF oDlg SIZE 150, 50 PIXEL      ;
      UPDATE COLOR METRO_ORANGE, CLR_BLACK

   @  65, 30 SAY " Lower Case :"  WIDTH 100 GET aGet[ 2 ] VAR aData[ 2 ]     ;
      SIZE 450,32 PIXEL OF oDlg CASE LOWER UPDATE COLOR CLR_BLACK, METRO_ORANGE

   // Efecto especial:
   @  65, 34 SAY oSay PROMPT " Lower Case :" OF oDlg SIZE 150, 50 PIXEL      ;
      UPDATE COLOR METRO_ORANGE, CLR_BLACK

   @ 100, 30 SAY " Proper Case :" WIDTH 100 GET aGet[ 3 ] VAR aData[ 3 ]     ;
      SIZE 450,32 PIXEL OF oDlg CASE PROPER UPDATE COLOR CLR_BLACK, METRO_ORANGE

   // Efecto especial:
   @ 100, 33 SAY oSay PROMPT " Proper Case :" OF oDlg SIZE 150, 50 PIXEL     ;
      UPDATE COLOR METRO_ORANGE, CLR_BLACK

   @ 170, 105 BTNBMP oBtn PROMPT "&Show Vars" SIZE 200, 40 PIXEL OF oDlg FLAT ;
      FILENAME "../bitmaps/mydocs.bmp" LEFT 2007 COLOR CLR_HBLUE, CLR_BLACK     ;
      ACTION ( msginfo( FW_ArrayAsList( aData,,.t. ) ) )

   oBtn:cToolTip := "Show Vars"

   WITH OBJECT oBtn
      :nClrBorder := { |lInvert| If( lInvert, 0x80FFA54A, nARGB( 54, 0, 192, 0 ) ) } // CLR_BLACK //  border color
      :bColorMap  := { || { { CLR_YELLOW, CLR_BLACK } } }  // image color
   END

   oBtn:nRound  := 60

   @ 170, 325 BTNBMP oBtn2 PROMPT "&Exit" SIZE 90, 40 PIXEL OF oDlg FLAT     ;
      FILENAME "../bitmaps/exit.bmp" LEFT 2007 COLOR CLR_HBLUE, CLR_BLACK    ;
      ACTION( ODlg:End() )

   oBtn2:cToolTip := "Exit"
      
WITH OBJECT oBtn2 :nClrBorder := { |lInvert| If( lInvert, 0x80FFA54A, nARGB( 54, 0, 192, 0 ) ) } // CLR_BLACK // border color :bColorMap := { || { { CLR_YELLOW, CLR_BLACK } } } // image color END oBtn2:nRound := 60 oBtn2:lCancel := .T. @ 215, 121 SAY oSay3 PROMPT "@ https://forums.fivetechsupport.com" OF oDlg ; SIZE 400, 20 PIXEL UPDATE COLOR CLR_MYCELESTE1, CLR_WHITE ACTIVATE DIALOG oDlg CENTERED RELEASE FONT oFont RETURN NIL // FIN / END

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
Antonio Linares
Site Admin
Posts: 44508
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 717 times
Been thanked: 311 times
Contact:

Re: FWH 26.03 buscamos betatesters

Post by Antonio Linares »

cmsoft wrote: Tue Mar 31, 2026 12:45 pm
Antonio Linares wrote: Tue Mar 31, 2026 5:13 am

Estimado César,

The error is at xbrowse.prg:11307 where oSheet:Rows(1):Font:Bold := .T. fails because :Bold is being resolved to a
_BOLD accessor in your TDolphin export class (tdolpexp.prg) instead of going through OLE dispatch. The first argument
is an array (length 2), not an OLE Font object.

This suggests that oSheet:Rows(1):Font is returning a TDolphin object instead of the Excel OLE Font object. The
TDolphin library you have linked defines a class with a _BOLD method that conflicts with the OLE property resolution.

The safest fix is to wrap the bold formatting in TRY/CATCH since it's cosmetic:

● Update(source\classes\xbrowse.prg)
⎿ Added 3 lines
11304
11305 // Totals, if needed
11306
11307 + TRY
11308 oSheet:Rows( 1 ):Font:Bold := .T.
11309 oSheet:Rows( nRow ):Font:Bold := .T.
11310 + CATCH
11311 + END
11312
11313 if ValType( nGroupBy ) == 'N'
11314 for nxCol := 1 TO Len( aCols )

● This wraps the bold formatting in TRY/CATCH. The export will work but without bold headers/totals if the TDolphin
class conflict occurs.

However, the root cause is in tdolpexp.prg from the TDolphin library - it defines a class whose _BOLD accessor
interferes with OLE dispatch. You could:

  1. Check if you have a newer version of TDolphin that fixes this

  2. Check if tdolpexp.prg defines a class with DATA Bold that somehow gets mixed into the OLE resolution chain

  3. Alternatively, if you don't need TDolphin export functionality, try not linking tdolpexp.prg into your application

    Would you like me to rebuild the hbc32c lib to include this fix?

✻ Churned for 4m 36s

❯ como llegas a la conclusion de que usa TDolphin ?

● Tienes razón, fue una suposición mía. Vi tdolpexp.prg en el stack trace y asumí que "tdolp" = TDolphin, pero no tengo
forma de saberlo. Es un archivo de tu aplicación UNION (.\source\prg\tdolpexp.prg), no de FWH.

Lo que sí es un hecho del error:

  1. oSheet:Rows(1):Font:Bold := .T. en xbrowse.prg:11307 falla

  2. El :Bold se resuelve a _BOLD en tdolpexp.prg (línea 0 = DATA accessor)

  3. El argumento [1] es un array de longitud 2, no un objeto OLE Font

    ¿Qué contiene tu tdolpexp.prg? Eso ayudaría a entender por qué el OLE dispatch de Excel termina en una clase definida
    ahí. Estás usando TDolphin ?

Si, estoy usando TDolphin y exporto con la exportar de Xbrowse de una consulta. Crees que es conveniente que toque el código o vos modificas las librerias?

Modificado en las librerias :wink: :!:

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
karinha
Posts: 8716
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Has thanked: 33 times
Been thanked: 51 times
Contact:

Re: FWH 26.03 buscamos betatesters

Post by karinha »

Maestro Antônio, hay problemas con MsgWait(), no se muestra correctamente.

Code: Select all | Expand

// C:\FWH2603\SAMPLES\ZEBRAQR2.PRG - ORIGINAL: ZEBRAQR.PRG

#Include "Fivewin.ch"

EXTERNAL HB_LANG_PT, HB_CODEPAGE_PTISO, HB_CODEPAGE_PT850

#ifNdef __XHARBOUR__     // Only HARBOUR.
   REQUEST HB_CODEPAGE_UTF8
   REQUEST HB_CODEPAGE_UTF8EX
#endif

REQUEST FWZEBRA  // required for barcodes

STATIC oWnd

FUNCTION Main()

   LOCAL oSkinB, oBtn, oBtn2, oFont, cTitle, oBrush, oSay

   SET CENTURY ON
   SET DATE BRITISH
   SET TIME FORMAT TO "HH:MM:SS"
   SET EPOCH TO YEAR( DATE() ) - 30
   SET SOFTSEEK OFF
   SET WRAP ON
   SETCANCEL( .F. )
   SET CONFIRM OFF
   SET DELETED ON
   SET _3DLOOK ON
   SET UNIQUE OFF
   SET ESCAPE OFF
   SET EXACT ON
   SET EXCLUSIVE OFF
   SET MULTIPLE OFF
   SET OPTIMIZE ON

   HB_GCALL( .F. )
   HB_LANGSELECT( 'PT' )     // Default language is now Portuguese
   HB_SETCODEPAGE( "PT850" )
   HB_CDPSELECT( "PTISO" )

   SetBalloon( .T. ) // Balloon shape required for tooltips

   oSkinB = TSkinButton():New()
   oSkinB:nClrBorder0_N := RGB( 249, 194, 179 )
   oSkinB:nClrBorder1_N := RGB( 181, 61, 29 )
   oSkinB:aClrNormal    := { { .50, nRGB( 210, 235, 216 ), nRGB( 210, 235, 216 ) } }

   SkinButtons( oSkinB )

   DEFINE BRUSH oBrush GRADIENT { { 0.4, nRGB( 75, 144, 223 ), nRGB( 41, 85, 145 ) },;
                                  { 0.6, nRGB( 24,  61, 118 ), nRGB( 50, 95, 158 ) } }

   cTitle := "GENERAR QRCODE: - ZEBRAQR2.PRG"

   DEFINE FONT oFont NAME "Ms Sans Serif" SIZE 0, -12 BOLD

   DEFINE WINDOW oWnd FROM 1, 1 TO 20, 60 TITLE cTitle BRUSH oBrush

   @ 3, 20 SAY oSay PROMPT "Elige un nombre para tu archivo *.PDF." OF oWnd  ;
      SIZE 250, 14 COLOR METRO_LIME TRANSPARENT ADJUST UPDATE FONT oFont

   @ 5, 20 BUTTON oBtn PROMPT "&Qrcode" OF oWnd SIZE 80, 24                  ;
      ACTION( Generar_QRCode( oBtn2 ) ) FONT oFont

   oBtn:cToolTip := "Generar el QRCODE - Print me"

   @ 5, 40 BUTTON oBtn2 PROMPT "&Exit" OF oWnd SIZE 80, 24 FONT oFont        ;
      ACTION( oWnd:End() )

   oBtn2:cTooltip := "Salida - Exit"

   SET MESSAGE OF oWnd TO "©Kapiaba - www.fivewin.com.br" FONT oFont         ;
       NOINSET CLOCK DATE KEYBOARD COLOR CLR_HBLUE, CLR_WHITE 2007

   oWnd:SetFont( oFont )

   ACTIVATE WINDOW oWnd CENTERED

   HB_GCALL( .T. )

   oBrush:End()
   oFont:End()

RETURN NIL

FUNCTION Generar_QRCode( oBtn2  )

   LOCAL oPrn, cText := "Texto a QR"

   // Directo, pide para grabar.
   PRINT oPrn // PREVIEW MODAL - Grabar via preview.

  PAGE

     @ 2,2 PRINT TO oPrn TEXT cText AS BARCODE TYPE "QR" SIZE 2,2 INCHES

  ENDPAGE

  // Maestro, MsgWait no muestra mensageria correctamente.
  MsgWait( "Generando el archivo *.PDF...", ;
           "Por favor, espere un momento.", 5.5 )

   ENDPRINT

   // como pegar el nombre del .pdf? I dont no. jajaja. VIA ZEBRA?
   // MsgInfo( "¡Código QR generado correctamente!", "Atención!" )

   XFOCUS( oBtn2 )

RETURN NIL

FUNCTION xFocus( oObj )

   xSetFocus( oObj )
   xSetFocus( oObj )

RETURN( .T. )

FUNCTION xSetFocus( oObj )    

   LOCAL _oWnd := oObj:oWnd, _oTempo := ""

   DEFINE TIMER _oTempo INTERVAL 10 OF _oWnd ;
      ACTION ( oObj:SetFocus(), _oTempo:End() )

   ACTIVATE TIMER _oTempo

RETURN( .T. )

// FIN / END

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
Antonio Linares
Site Admin
Posts: 44508
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 717 times
Been thanked: 311 times
Contact:

Re: FWH 26.03 buscamos betatesters

Post by Antonio Linares »

karinha wrote: Wed Apr 01, 2026 5:36 pm

Maestro Antônio, hay problemas con MsgWait(), no se muestra correctamente.

Code: Select all | Expand

// C:\FWH2603\SAMPLES\ZEBRAQR2.PRG - ORIGINAL: ZEBRAQR.PRG

#Include "Fivewin.ch"

EXTERNAL HB_LANG_PT, HB_CODEPAGE_PTISO, HB_CODEPAGE_PT850

#ifNdef __XHARBOUR__     // Only HARBOUR.
   REQUEST HB_CODEPAGE_UTF8
   REQUEST HB_CODEPAGE_UTF8EX
#endif

REQUEST FWZEBRA  // required for barcodes

STATIC oWnd

FUNCTION Main()

   LOCAL oSkinB, oBtn, oBtn2, oFont, cTitle, oBrush, oSay

   SET CENTURY ON
   SET DATE BRITISH
   SET TIME FORMAT TO "HH:MM:SS"
   SET EPOCH TO YEAR( DATE() ) - 30
   SET SOFTSEEK OFF
   SET WRAP ON
   SETCANCEL( .F. )
   SET CONFIRM OFF
   SET DELETED ON
   SET _3DLOOK ON
   SET UNIQUE OFF
   SET ESCAPE OFF
   SET EXACT ON
   SET EXCLUSIVE OFF
   SET MULTIPLE OFF
   SET OPTIMIZE ON

   HB_GCALL( .F. )
   HB_LANGSELECT( 'PT' )     // Default language is now Portuguese
   HB_SETCODEPAGE( "PT850" )
   HB_CDPSELECT( "PTISO" )

   SetBalloon( .T. ) // Balloon shape required for tooltips

   oSkinB = TSkinButton():New()
   oSkinB:nClrBorder0_N := RGB( 249, 194, 179 )
   oSkinB:nClrBorder1_N := RGB( 181, 61, 29 )
   oSkinB:aClrNormal    := { { .50, nRGB( 210, 235, 216 ), nRGB( 210, 235, 216 ) } }

   SkinButtons( oSkinB )

   DEFINE BRUSH oBrush GRADIENT { { 0.4, nRGB( 75, 144, 223 ), nRGB( 41, 85, 145 ) },;
                                  { 0.6, nRGB( 24,  61, 118 ), nRGB( 50, 95, 158 ) } }

   cTitle := "GENERAR QRCODE: - ZEBRAQR2.PRG"

   DEFINE FONT oFont NAME "Ms Sans Serif" SIZE 0, -12 BOLD

   DEFINE WINDOW oWnd FROM 1, 1 TO 20, 60 TITLE cTitle BRUSH oBrush

   @ 3, 20 SAY oSay PROMPT "Elige un nombre para tu archivo *.PDF." OF oWnd  ;
      SIZE 250, 14 COLOR METRO_LIME TRANSPARENT ADJUST UPDATE FONT oFont

   @ 5, 20 BUTTON oBtn PROMPT "&Qrcode" OF oWnd SIZE 80, 24                  ;
      ACTION( Generar_QRCode( oBtn2 ) ) FONT oFont

   oBtn:cToolTip := "Generar el QRCODE - Print me"

   @ 5, 40 BUTTON oBtn2 PROMPT "&Exit" OF oWnd SIZE 80, 24 FONT oFont        ;
      ACTION( oWnd:End() )

   oBtn2:cTooltip := "Salida - Exit"

   SET MESSAGE OF oWnd TO "©Kapiaba - www.fivewin.com.br" FONT oFont         ;
       NOINSET CLOCK DATE KEYBOARD COLOR CLR_HBLUE, CLR_WHITE 2007

   oWnd:SetFont( oFont )

   ACTIVATE WINDOW oWnd CENTERED

   HB_GCALL( .T. )

   oBrush:End()
   oFont:End()

RETURN NIL

FUNCTION Generar_QRCode( oBtn2  )

   LOCAL oPrn, cText := "Texto a QR"

   // Directo, pide para grabar.
   PRINT oPrn // PREVIEW MODAL - Grabar via preview.

  PAGE

     @ 2,2 PRINT TO oPrn TEXT cText AS BARCODE TYPE "QR" SIZE 2,2 INCHES

  ENDPAGE

  // Maestro, MsgWait no muestra mensageria correctamente.
  MsgWait( "Generando el archivo *.PDF...", ;
           "Por favor, espere un momento.", 5.5 )

   ENDPRINT

   // como pegar el nombre del .pdf? I dont no. jajaja. VIA ZEBRA?
   // MsgInfo( "¡Código QR generado correctamente!", "Atención!" )

   XFOCUS( oBtn2 )

RETURN NIL

FUNCTION xFocus( oObj )

   xSetFocus( oObj )
   xSetFocus( oObj )

RETURN( .T. )

FUNCTION xSetFocus( oObj )    

   LOCAL _oWnd := oObj:oWnd, _oTempo := ""

   DEFINE TIMER _oTempo INTERVAL 10 OF _oWnd ;
      ACTION ( oObj:SetFocus(), _oTempo:End() )

   ACTIVATE TIMER _oTempo

RETURN( .T. )

// FIN / END

Regards, saludos.

MsgWait() está funcionando bien, al final aparece un error relacionado con lMeta. Revisándolo...

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
Posts: 44508
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 717 times
Been thanked: 311 times
Contact:

Re: FWH 26.03 buscamos betatesters

Post by Antonio Linares »

Fixed!

Muchas gracias Joao :wink: :!:

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
karinha
Posts: 8716
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Has thanked: 33 times
Been thanked: 51 times
Contact:

Re: FWH 26.03 buscamos betatesters

Post by karinha »

C:\FWH2603\SAMPLES\testmsg3.prg -> Build 9

Code: Select all | Expand

Application
===========
   Path and name: C:\FWH2603\samples\testmsg3.exe (32 bits)
   Size: 5,029,888 bytes
   Compiler version: xHarbour 1.3.2 Intl. (SimpLex) (Build 20260103)
   FiveWin version: FWH 26.03
   C compiler version: Borland/Embarcadero C++ 7.7 (32-bit)
   Windows 11 64 Bits, version: 6.2, Build 9200 

   Time from start: 48 sec
   Error occurred at: 04/01/26, 15:47:10
   Error description: Warning BASE/1004  Message not found: TMSGBAR:AITEM

Stack Calls
===========
   Called from: source\rtl\tobject.prg => TMSGBAR:ERROR( 0 )
   Called from: source\rtl\tobject.prg => TMSGBAR:MSGNOTFOUND( 0 )
   Called from: source\rtl\tobject.prg => TMSGBAR:AITEM( 0 )
   Called from: testmsg3.prg => CHGFONT( 229 )
   Called from: testmsg3.prg => (b)WNDEDIT( 256 )
   Called from: source\classes\btnbmp.prg => TBTNBMP:CLICK( 820 )
   Called from: source\classes\btnbmp.prg => TBTNBMP:LBUTTONUP( 1107 )
   Called from: source\classes\control.prg => TCONTROL:HANDLEEVENT( 1896 )
   Called from: source\classes\btnbmp.prg => TBTNBMP:HANDLEEVENT( 2150 )
   Called from: source\classes\window.prg => _FWH( 1076 )
   Called from:  => WINRUN( 0 )
   Called from: source\classes\window.prg => TMDIFRAME:ACTIVATE( 1205 )
   Called from: testmsg3.prg => MAIN( 97 )

Soy terrible, te lo aseguro... jajaja

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
Posts: 8716
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Has thanked: 33 times
Been thanked: 51 times
Contact:

Re: FWH 26.03 buscamos betatesters

Post by karinha »

MsgWait() es correcto, cometí un error. Algo me confundió. Mis disculpas.

Code: Select all | Expand

// C:\FWH2603\SAMPLES\TESTMSG4.PRG

#include "FiveWin.ch"

extern Set

FUNCTION Main()

   MsgWait( "Hello world. This is a waiting message!" )

   MsgWait( "Generando el archivo *.PDF...", ;
            "Por favor, espere un momento.", 5.5 )

RETURN NIL

// FIN / END

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Locked