FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour FWH 26.03 betatesters wanted
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: FWH 26.03 betatesters wanted
Posted: Thu Mar 26, 2026 06:49 PM

para construir harbour con bcc32c y con bcc64, he tenido que hacer algunos cambios, en el archivo \config\win\bcc.mk

# GNU Make file for Borland/CodeGear/Embarcadero C/C++
# Support for bcc, bcc32c, bcc64
ifeq ($(HB_COMPILER),bcc64)
   OBJ_EXT := .o
   LIB_PREF :=
   LIB_EXT := .a
else
   OBJ_EXT := .obj
   LIB_PREF :=
   LIB_EXT := .lib
endif

HB_DYN_COPT := -DHB_DYNLIB

ifeq ($(HB_COMPILER),bcc64)
   CC := bcc64.exe
else ifeq ($(HB_COMPILER),bcc32c)
   CC := bcc32c.exe
else
   CC := bcc32.exe
endif

CC_IN := -c
CC_OUT := -o

CFLAGS += -I. -I$(HB_HOST_INC)

ifeq ($(HB_COMPILER),bcc)
   CFLAGS += -q -tWM -CP437
else
   CFLAGS += -q -tWM 
endif

ifeq ($(HB_BUILD_WARN),no)
   ifeq ($(HB_COMPILER),bcc32)
       CFLAGS += -w-aus -w-ccc -w-csu -w-ovf -w-par -w-rch -w-spa
   endif
else
   ifeq ($(HB_COMPILER),bcc32c)
      CFLAGS += -w 
   else ifeq ($(HB_COMPILER),bcc64)
      CFLAGS += -w -Q
   endif
endif

ifneq ($(HB_BUILD_OPTIM),no)
   ifeq ($(HB_COMPILER),bcc32)
      CFLAGS += -d -O2 -OS -Ov -Oc -Oi -6
   else  ifeq ($(HB_COMPILER),bcc32c)
      CFLAGS += -d -O2
   else
      CFLAGS += -O2 
   endif
endif

ifeq ($(HB_BUILD_MODE),cpp)
   ifneq ($(HB_COMPILER),bcc64)
      CFLAGS += -P
   endif
endif

ifeq ($(HB_BUILD_DEBUG),yes)
   ifeq ($(HB_COMPILER),bcc64)
      CFLAGS += -g
   else ifeq ($(HB_COMPILER),bcc)
      CFLAGS += -v -y
   else
      CFLAGS += -v
   endif
endif

ifneq ($(HB_HOST_PLAT_UNIX),)
   BACKSLASH := $(subst /,\,\\)
else
   BACKSLASH := $(subst /,\,\)
endif

ifeq ($(HB_SHELL),sh)
   ECHOBACKSLASH := $(BACKSLASH)$(BACKSLASH)
else
   ECHOBACKSLASH := $(BACKSLASH)
endif

# Hack to autoconfig bcc, and not require properly set .cfg files in its bin dir.
# It only works if we know compiler location.
ifneq ($(HB_COMP_PATH_PUB),)
   HB_CFLAGS += $(subst /,$(BACKSLASH),-I"$(HB_COMP_PATH_PUB)../Include")
   RCFLAGS   += $(subst /,$(BACKSLASH),-I"$(HB_COMP_PATH_PUB)../Include")
   ifneq ($(wildcard $(HB_COMP_PATH_PUB)../Include/windows/crtl),)
      HB_CFLAGS += $(subst /,$(BACKSLASH),-I"$(HB_COMP_PATH_PUB)../Include/windows/crtl")
      RCFLAGS   += $(subst /,$(BACKSLASH),-I"$(HB_COMP_PATH_PUB)../Include/windows/crtl")
   endif
   ifneq ($(wildcard $(HB_COMP_PATH_PUB)../Include/windows/sdk),)
      HB_CFLAGS += $(subst /,$(BACKSLASH),-I"$(HB_COMP_PATH_PUB)../Include/windows/sdk")
      RCFLAGS   += $(subst /,$(BACKSLASH),-I"$(HB_COMP_PATH_PUB)../Include/windows/sdk")
   endif
   ifeq ($(HB_COMPILER),bcc64)
      LDFLAGS += $(subst /,$(BACKSLASH),-L"$(HB_COMP_PATH_PUB)../Lib/Win64" -L"$(HB_COMP_PATH_PUB)../Lib/Win64/PSDK")
      DFLAGS  += $(subst /,$(BACKSLASH),-L"$(HB_COMP_PATH_PUB)../Lib/Win64" -L"$(HB_COMP_PATH_PUB)../Lib/Win64/PSDK")   

   else ifeq ($(HB_COMPILER),bcc32c)
      LDFLAGS += $(subst /,$(BACKSLASH),-L"$(HB_COMP_PATH_PUB)../Lib/Win32c" -L"$(HB_COMP_PATH_PUB)../Lib/Win32c/PSDK")
      DFLAGS  += $(subst /,$(BACKSLASH),-L"$(HB_COMP_PATH_PUB)../Lib/Win32c" -L"$(HB_COMP_PATH_PUB)../Lib/Win32c/PSDK")   

   else
      LDFLAGS += $(subst /,$(BACKSLASH),-L"$(HB_COMP_PATH_PUB)../Win32/Lib" -L"$(HB_COMP_PATH_PUB)../Lib/Win32/PSDK")
      DFLAGS  += $(subst /,$(BACKSLASH),-L"$(HB_COMP_PATH_PUB)../Win32/Lib" -L"$(HB_COMP_PATH_PUB)../Lib/Win32/PSDK")
   endif   

endif

ifeq ($(HB_COMPILER),bcc)
   RC := brcc32.exe
   RC_OUT := -fo
   RCFLAGS += -I. -I$(HB_HOST_INC)
else
   RC := rc.exe
   RC_OUT := -fo
   RCFLAGS += /i. /i$(HB_HOST_INC)
endif

ifeq ($(HB_COMPILER),bcc64)
   LD := ilink64.exe
else
   LD := ilink32.exe
endif

LIBPATHS := $(foreach dir,$(LIB_DIR) $(3RDLIB_DIR),$(subst /,$(BACKSLASH),-L"$(dir)"))
LDFLAGS += $(LIBPATHS) -Gn 
ifeq ($(HB_COMPILER),bcc64)
   LDFLAGS += -Tpe 
else
   LDFLAGS += -Tpe 
endif

ifeq ($(HB_COMPILER),bcc64)
   LD_RULE = $(LD) $(LDFLAGS) $(HB_LDFLAGS) $(HB_USER_LDFLAGS) c0x64.o $(filter-out %$(RES_EXT),$(^F)), "$(subst /,$(BACKSLASH),$(BIN_DIR)/$@)", nul, $(LDLIBS) cw64mt import64,, $(filter %$(RES_EXT),$(^F)) $(LDSTRIP)
else
   LD_RULE = $(LD) $(LDFLAGS) $(HB_LDFLAGS) $(HB_USER_LDFLAGS) c0x32.obj $(filter-out %$(RES_EXT),$(^F)), "$(subst /,$(BACKSLASH),$(BIN_DIR)/$@)", nul, $(LDLIBS) cw32mt import32,, $(filter %$(RES_EXT),$(^F)) $(LDSTRIP)
endif

LDLIBS := $(strip $(HB_USER_LIBS) $(LIBS) $(3RDLIBS) $(SYSLIBS))

ifeq ($(HB_COMPILER),bcc64)
   AR := tlib64.exe
else
   AR := tlib.exe
endif
ifeq ($(HB_COMPILER),bcc32c)
   ARFLAGS += /C /P128
else
   ARFLAGS += /P128
endif

ifeq ($(HB_SHELL),sh)
   q = '
else
   q = "
endif
AR_RULE = $(AR) $(ARFLAGS) $(HB_AFLAGS) $(HB_USER_AFLAGS) $(q)$(subst /,$(BACKSLASH),$(LIB_DIR)/$@)$(q) $(foreach file,$(?F),-+$(file))

ifneq ($(HB_SHELL),sh)
   ifeq ($(HB_SHELL_XP),)

  ifeq ($(HB_SHELL),nt)
     LINECONT := ^&
  else
     LINECONT := &
  endif

  # NOTE: Command-line limit length defeating methods found below
  #       are only needed to support pre-Windows XP systems, where
  #       limit is 2047 chars. [vszakats]

  # NOTE: The empty line directly before 'endef' HAS TO exist!
  define library_object
     @$(ECHO) $(ECHOQUOTE)-+$(subst /,$(ECHOBACKSLASH),$(file)) $(LINECONT)$(ECHOQUOTE) >> __lib__.tmp

  endef

  define create_library
     $(if $(wildcard __lib__.tmp),@$(RM) __lib__.tmp,)
     $(foreach file,$(?F),$(library_object))
     @$(ECHO) $(ECHOQUOTE)-+$(ECHOQUOTE)>> __lib__.tmp
     $(AR) $(ARFLAGS) $(HB_AFLAGS) $(HB_USER_AFLAGS) "$(subst /,$(BACKSLASH),$(LIB_DIR)/$@)" @__lib__.tmp
  endef

  AR_RULE = $(create_library)

   endif
endif

ifeq ($(HB_COMPILER),bcc64)
   DY := ilink64.exe
else
   DY := ilink32.exe
endif
DFLAGS += -q -Gn -C -aa -Tpd -Gi -x $(LIBPATHS)
DY_OUT :=
# NOTE: .lib extension not added to keep line short enough to work on Win9x/ME
ifeq ($(HB_COMPILER),bcc64)
   DLIBS := $(HB_USER_LIBS) $(LIBS) $(3RDLIBS) $(SYSLIBS) cw64mt import64
else
   DLIBS := $(HB_USER_LIBS) $(LIBS) $(3RDLIBS) $(SYSLIBS) cw32mt import32
endif

# NOTE: The empty line directly before 'endef' HAS TO exist!
define dynlib_object
   @$(ECHO) $(ECHOQUOTE)$(subst /,$(ECHOBACKSLASH),$(file)) +$(ECHOQUOTE) >> __dyn__.tmp

endef
define create_dynlib
   $(if $(wildcard __dyn__.tmp),@$(RM) __dyn__.tmp,)
   $(foreach file,$^,$(dynlib_object))
   @$(ECHO) $(ECHOQUOTE), $(subst /,$(ECHOBACKSLASH),$(DYN_DIR)/$@),, $(subst /,$(ECHOBACKSLASH),$(DLIBS))$(ECHOQUOTE) >> __dyn__.tmp 
   ifeq ($(HB_COMPILER),bcc64)
      $(DY) $(DFLAGS) $(HB_USER_DFLAGS) c0d64.o @__dyn__.tmp
   else
      $(DY) $(DFLAGS) $(HB_USER_DFLAGS) c0d32.obj @__dyn__.tmp
   endif
   @$(CP) $(subst /,$(DIRSEP),$(DYN_DIR)/$(basename $@)$(LIB_EXT)) $(subst /,$(DIRSEP),$(IMP_FILE))
   @$(RM) $(subst /,$(DIRSEP),$(DYN_DIR)/$(basename $@)$(LIB_EXT))
endef

DY_RULE = $(create_dynlib)

include $(TOP)$(ROOT)config/rules.mk
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: FWH 26.03 betatesters wanted
Posted: Thu Mar 26, 2026 06:50 PM

ademas de crear en el mismo directorio el archivo: bcc32c.mk

include $(TOP)$(ROOT)config/$(HB_PLATFORM)/bcc.mk
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: FWH 26.03 betatesters wanted
Posted: Thu Mar 26, 2026 06:54 PM

otro asunto fue que pude construir harbour con bcc32c y con bcc64 de la versión bcc77 y bcc78 (sip es la versión más reciente)
pero el hbmk2.exe salía corrupto y por tanto no me construía las contrib, me mostraba un problemas con los codepage, para poder hacer que se construyera correctamente tuve que modificar las fuentes de harbour de la carpeta \src\codepage y \src\lang, con este código:
esto lo encontre en los grupos de google.

Antonio, como has construido tu harbour?
sería bueno no hacer este paso ya que se modifica las fuentes de harbour.

aDir = DIRECTORY( "src\codepage\*.*" )

FOR i = 1 TO LEN( aDir )
    cTxt = MEMOREAD( "src\codepage\" + aDir[ i, F_NAME ] )

    cTxt = TOOCTAL( cTxt )

    IF cTxt != NIL
        MEMOWRIT( "src\codepage\" + aDir[ i, F_NAME ], cTxt, .F. )
    ENDIF
NEXT

aDir = DIRECTORY( "src\lang\*.*" )

FOR i = 1 TO LEN( aDir )
    cTxt = MEMOREAD( "src\lang\" + aDir[ i, F_NAME ] )

    cTxt = TOOCTAL( cTxt )

    IF cTxt != NIL
        MEMOWRIT( "src\lang\" + aDir[ i, F_NAME ], cTxt, .F. )
    ENDIF
NEXT

 STATIC FUNCTION TOOCTAL( cTxt )

LOCAL cRes := ""

LOCAL nVal, cVal

LOCAL lUtf := .F.

LOCAL i

FOR i = 1 TO LEN( cTxt )
    IF ASC( SUBSTR( cTxt, i, 1 ) ) <= 127
        cRes += SUBSTR( cTxt, i, 1 )
    ELSE
        nVal = ASC( SUBSTR( cTxt, i, 1 ) )

        cVal = ""

        WHILE nVal / 8 > 0
            cVal = NTRIM( INT( nVal % 8 ) ) + cVal
            nVal = INT( nVal / 8 )
        ENDDO

        cRes += "\" + cVal

        lUtf = .T.
    ENDIF
NEXT

RETURN IF( lUtf, cRes, NIL )
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: FWH 26.03 betatesters wanted
Posted: Thu Mar 26, 2026 07:10 PM

demas, he estado trabajando en \util\hbmk2\hbmk2.prg para que soporte bcc32c,
http://carlosvargas.duckdns.org/owncloud/index.php/s/yj11HDwP2wKz31K

de esta forma podemos usar la macro {bcc32c}

Esto es un ejemplo de uso:
prestamos.hbp

#CONFIGURACION INICIAL
-hbexe
{bcc}-o${hb_name}b
{bcc32c}-o${hb_name}32c
{mingw}-o${hb_name}
g
-workdir=obj\
-jobs=%NUMBER_OF_PROCESSORS%
-compr
-info
-trace
-static
-fullstatic
-strip
-beep
-run
-map-
-inc

#-instpath=d:\prestamos\
#-instfile=dbconfig.Exe

#FLAGS A USAR POR COMPILADOR C, COMPILADOR HARBOUR, COMPILADOR RECURSOS Y ENLAZADOR
-prgflag=/m /n /gc0 /w0 /es2 /q0 /ql /dDEV2;EDITAR_REPORTE2
-cflag=-DWINVER=0x0601
-cflag=-D_WIN32_WINNT=0x0601
-cflag=-DNTDDI_VERSION=NTDDI_WIN7
{mingw}-ldflag=-s
{mingw}-ldflag=-Wl,--allow-multiple-definition
{mingw}-ldflag=-Wl,--large-address-aware
{mingw}-ldflag=--enable-stdcall-fixup
{bccbcc32c}-ldflag=/GF:LARGEADDRESSAWARE
{bcc
bcc32c}-ldflag=-x
{bcc||bcc32c}-ldflag=-V6.1
-resflag=-DFLAT

#DRIVE GT A USAR
-gtgui

#RUTAS DE INCLUDES
-incpath=d:\fwh\include
-incpath=d:\fwh\include2
-incpath=include

#RUTAS DE .LIB Ó .A
-Ld:\fwh\lib

#LIBRERIAS A UTILIZAR DE FWH Y OTRAS
{bcc}-lpatch
{bcc}-lfiveh
{bcc}-lfivehc
{bcc}-llibmysql

{bcc32c}-lpatch32c
{bcc32c}-lfiveh32c
{bcc32c}-lfivehc32c
{bcc32c}-llibmysql32c

{mingw}-lpatch
{mingw}-lfivehg
{mingw}-lfivehgc
{mingw}-llibmysql
{mingw|bcc}-lhbtmysql
{bcc32c}-lhbtmysql32c

#LIBRERIAS DE C COMPILER
-lgdiplus -lversion
-lodbc32 -lsetupapi -lpsapi
-lopengl32 -loledlg -lvfw32 -lwsock32 -lurlmon
-luxtheme -lshcore
{mingw}-lucrt
{mingw}-lstdc++

#MODULOS DE CONTRIB
hbct.hbc
xhb.hbc
hbziparc.hbc
hbmisc.hbc
hbnf.hbc

#MODULOS PROPIOS (EL PRIMERO ES EL MODULO PRINCIPAL)
source\prestamos.prg
source\prestamos_acercade.prg
source\prestamos_conectar.prg
source\prestamos_acceso.prg
source\prestamos_menu.prg
source\prestamos_contadores.prg
source\prestamos_feriados.prg
source\prestamos_rutas.prg
source\prestamos_usuarios.prg
source\prestamos_clientes.prg
source\prestamos_cobradores.prg
source\prestamos_cat.prg
source\prestamos_nuevo.prg
source\prestamos_pagos.prg
source\prestamos_ajustes.prg
source\prestamos_ver.prg
source\prestamos_mora.prg
source\prestamos_cobranza.prg
source\prestamos_cierrecobro.prg
source\prestamos_reportes.prg
source\prestamos_respaldo.prg
source\fun_extenciones.prg

source\fun_showerror.prg
source\fun_msgget.prg
source\fun_visor.prg
source\fun_varias.prg

source\fwsrc\tmytitle.prg
source\fwsrc\rpreview.prg
source\fwsrc\msgrun.prg
source\fwsrc\msglist.prg
source\fwsrc\wait.prg

#MODULO .RC
resource\prestamos.rc

c_bcc32c.cmd

@echo off
set path=%path%;d:\compiler\bcc\bin;d:\compiler\harbour\bin
set HB_USER_RESCOMPILER=rc.exe
set HB_USER_RESFLAGS=-Id:\compiler\bcc\include\windows;d:\compiler\bcc\include\windows\sdk
del obj\*.* /Q
hbmk2 prestamos.hbp -comp=bcc32c
pause

c_bcc.cmd

@echo off
set path=%path%;d:\compiler\bcc\bin;d:\compiler\harbour\bin
set HB_USER_RESCOMPILER=rc.exe
set HB_USER_RESFLAGS=-Id:\compiler\bcc\include\windows;d:\compiler\bcc\include\windows\sdk
del obj\*.* /Q
hbmk2 prestamos.hbp -comp=bcc
pause

Esto, con el hbmk2 que deje en el link

aca dejo el ejecutable, lo he renombrado a hbmk3.exe, por comodidad y que no afecte a hbmk2.exe, algo que he agregado es que podemos indicarle que use el compilador de recursos RC.EXE de microsoft, en lugar del del borland/embarcadero, usando una raviable de entorno, ver ejemplo del bat.

http://carlosvargas.duckdns.org/owncloud/index.php/s/qHOPH3QIF6zHaFf

Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: FWH 26.03 betatesters wanted
Posted: Thu Mar 26, 2026 08:12 PM
alerchster wrote:

fivedbu.prg

compiled with BCC770 32 Bit runs OK
compiled with MSVC 32 and 64 Bit some Dialogs will not be shown
example: "Setup" "Preferences", Buttonbar "Search" and many more

fwstring with german "öäü" is now ok

compiled with MSVC 32 and 64 Bit some Dialogs will not be shown

which ones ?

many thanks for your feedback! :)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 137
Joined: Mon Oct 22, 2012 04:43 PM
Re: FWH 26.03 betatesters wanted
Posted: Thu Mar 26, 2026 09:04 PM

Dear Antonio

Fivedbu compiled with Harbour and MSVC 32 and 64Bit Open one DBF File, click on Buttonbar, Dialog,s for Search, Filters, Structure, Import/Export, Report will not be shown, without any error message!

Regards



Ing. Anton Lerchster
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: FWH 26.03 betatesters wanted
Posted: Fri Mar 27, 2026 12:10 AM

Dear Anton,

Bug located and fixed. Due to the support of bcc77 LLVM/CLang we did a change in the alignment of dialogs templates, this change was not correct for msvc.

Thank you so much for your great feedback :!: :)

Tomorrow we will have a new beta ready :!:

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 137
Joined: Mon Oct 22, 2012 04:43 PM
Re: FWH 26.03 betatesters wanted
Posted: Fri Mar 27, 2026 07:19 AM

Dear Antonio

Fivedbu compiled with Harbour and BCC 32, MSVC 32 and 64Bit runs now ok!

There are only designerrors, which can be cleaned, seems they are for test anything.

Regards



Ing. Anton Lerchster
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: FWH 26.03 betatesters wanted
Posted: Fri Mar 27, 2026 10:53 AM

Dear Anton,

There are only designerrors, which can be cleaned, seems they are for test anything.

Please explain it with more detail, thank you :)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 137
Joined: Mon Oct 22, 2012 04:43 PM
Re: FWH 26.03 betatesters wanted
Posted: Fri Mar 27, 2026 11:34 AM

Dear Antonio

Fivedbu compiled with Harbour and BCC 770 32Bit MSVC 32 and 64Bit Open one DBF File, - right side of buttonbar now a new button with "Test" ok - is for analize. Set Language to german! Click Button Search (Suche) on Buttonbar - following Dialog show's the string for "Key" - in german "Schlüssel", but it displays not "Schlüssel". Close Database Click Button New (Neu) on Buttonbar - following Dialog show's the string for "Len" in german "Länge", but it display not "Länge".

I don't understand why, if i make a msginfo(fwstring("Key")) there display correct "Schlüssel" and if i make a msginfo(fwstring("Len")) there display correct "Länge"

This issue was although before Version 26.03.

Regards



Ing. Anton Lerchster
Posts: 137
Joined: Mon Oct 22, 2012 04:43 PM
Re: FWH 26.03 betatesters wanted
Posted: Fri Mar 27, 2026 01:05 PM

Dear Antonio

There are Problems with german language on dialogs it is same in fivedbu with "Key" and "Len" posted before
Regardless of whether it's compiled with bcc or msvc

// Working with MDI enviroments

#include "FiveWin.ch"

static oWnd

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

function Main()
   

   fwsetlanguage(5)

   DEFINE WINDOW oWnd TITLE "Probando Recuperar Focus del Dialogo" ;
      MDI ;
      MENU BuildMenu()

   SET MESSAGE OF oWnd TO "Main Window"

   ACTIVATE WINDOW oWnd MAXIMIZED ;
      VALID MsgYesNo( "Want to End ?" )

return nil

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

function BuildMenu()

   local oMenu

   MENU oMenu
      MENUITEM "&Information"
      MENU
         MENUITEM "&DIALGOS 1" ACTION Dlg( fwstring("Len") )
         MENUITEM "&DIALOGS 2" ACTION Dlg( fwstring("Key") )

     SEPARATOR
     MENUITEM "&End..." ACTION oWnd:End()
  ENDMENU

   ENDMENU

return oMenu

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

STATIC FUNCTION Dlg( cTest )

   local oDlg

   DEFINE DIALOG oDlg TITLE cTest OF oWND

   oDlg:bGotFocus = {|| oWnd:SetText( cTest ) }
   

   @ 1, 5 Say cTest

   @ 3, 5 BUTTON "&Ok" ACTION oDlg:End()

   ACTIVATE DIALOG oDlg NOWAIT

return .t.
Regards



Ing. Anton Lerchster
Posts: 5
Joined: Wed Aug 31, 2011 08:55 PM
Re: FWH 26.03 betatesters wanted
Posted: Fri Mar 27, 2026 07:06 PM

Estoy interesado en ser Betatester, que hay que hacer para inscribirse?

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: FWH 26.03 betatesters wanted
Posted: Sat Mar 28, 2026 03:08 AM
ratazul wrote:

Estoy interesado en ser Betatester, que hay que hacer para inscribirse?

Tienes una aplicación grande hecha con FWH para probar ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: FWH 26.03 betatesters wanted
Posted: Sat Mar 28, 2026 03:56 AM
alerchster wrote:

Dear Antonio

There are Problems with german language on dialogs it is same in fivedbu with "Key" and "Len" posted before
Regardless of whether it's compiled with bcc or msvc

// Working with MDI enviroments

#include "FiveWin.ch"

static oWnd

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

function Main()
   

   fwsetlanguage(5)

   DEFINE WINDOW oWnd TITLE "Probando Recuperar Focus del Dialogo" ;
      MDI ;
      MENU BuildMenu()

   SET MESSAGE OF oWnd TO "Main Window"

   ACTIVATE WINDOW oWnd MAXIMIZED ;
      VALID MsgYesNo( "Want to End ?" )

return nil

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

function BuildMenu()

   local oMenu

   MENU oMenu
      MENUITEM "&Information"
      MENU
         MENUITEM "&DIALGOS 1" ACTION Dlg( fwstring("Len") )
         MENUITEM "&DIALOGS 2" ACTION Dlg( fwstring("Key") )

     SEPARATOR
     MENUITEM "&End..." ACTION oWnd:End()
  ENDMENU

   ENDMENU

return oMenu

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

STATIC FUNCTION Dlg( cTest )

   local oDlg

   DEFINE DIALOG oDlg TITLE cTest OF oWND

   oDlg:bGotFocus = {|| oWnd:SetText( cTest ) }
   

   @ 1, 5 Say cTest

   @ 3, 5 BUTTON "&Ok" ACTION oDlg:End()

   ACTIVATE DIALOG oDlg NOWAIT

return .t.

Dear Anton,

Fixed! I am sending you new 26.03 build

Many thanks for your great feedback :!:

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 137
Joined: Mon Oct 22, 2012 04:43 PM
Re: FWH 26.03 betatesters wanted
Posted: Sat Mar 28, 2026 05:59 AM

Dear Antonio

How was it solved?

I had the idea to solve it using fwstring and return oemtoansi(hb__utf8tostr(cstring)) – that was a bad idea because it caused the labeling error with buttons and combo boxes – not only in German but also in Spanish. While this solution fixed the problem with dialogs, it also opened up other, as yet unknown, issues. P.S. In the latest beta version, I can't compile with bcc32; there are many warnings and errors with unresolved external __Sinx in fiveh.lib.

Fivedbu compiled with Harbour and MSVC 32-bit and 64-bit now produces the errors described above for buttons and combo boxes..

Regards



Ing. Anton Lerchster