FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour FWH 26.03 betatesters wanted
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: FWH 26.03 betatesters wanted
Posted: Sun Mar 29, 2026 03:30 PM

Buenas tardes, maestro. El problema al guardar el archivo .PDF está resuelto. Sin embargo, la acentuación de FWSTRING() sigue sin funcionar. En lugar de acentuar, sigue mostrando <?>. Incluso el instalador de FiveWin muestra la acentuación incorrecta. idioma español.

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: FWH 26.03 betatesters wanted
Posted: Sun Mar 29, 2026 03:58 PM

Maestro, parcialmente resuelto con FW_SetUnicode( .T. ). Solo una función FWSTRING() no funcionó en el MENU:

         MENUITEM FWString( "Attention" ) + " - Dialog Test" ACTION TestDlg() ;
            FILENAME "..\bitmaps\16x16\info.bmp"
#include "FiveWin.ch"

EXTERNAL HB_LANG_PT, HB_CODEPAGE_PTISO, HB_CODEPAGE_PT850

#ifNdef __XHARBOUR__     // Somente para HARBOUR, XHARBOUR nao tem isso ainda.
   REQUEST HB_CODEPAGE_UTF8
   REQUEST HB_CODEPAGE_UTF8EX
#endif

STATIC oWnd, lDummy1 := .f.

function Main()

   LOCAL oBar

   // FWSetLanguage( 5 ) // German
   FWSetLanguage( 4 )  // Portuguese

   HB_LANGSELECT( 'PT' )
   HB_SETCODEPAGE( "UTF8" )
   HB_CDPSELECT( "UTF8EX" )
   HB_SETCODEPAGE( "PT850" )
   HB_CDPSELECT( "PTISO" )

   FW_SetUnicode( .T. )  // Resuelto parcial - MENU problemas.

   DEFINE WINDOW oWnd TITLE FWString( "Testing Accented Characters - " ) +    ;
                            FWString( "Attention" )                           ;
      MENU BuildMenu() MDI

   DEFINE BUTTONBAR oBar BUTTONSIZE 75, 70 _3DLOOK TOP OF oWnd 2007

   DEFINE BUTTON OF oBar PROMPT FWString( "Add" )    ACTION TestDlg()         ;
      FILENAME "..\bitmaps\16x16\new.bmp" FLAT

   DEFINE BUTTON OF oBar PROMPT FWString( "Edit" )   ACTION TestDlg()         ;
      FILENAME "..\bitmaps\16x16\open.bmp" FLAT

   DEFINE BUTTON OF oBar PROMPT FWString( "Search" ) ACTION TestDlg()         ;
      FILENAME "..\bitmaps\16x16\floppy.bmp" FLAT

   DEFINE BUTTON OF oBar PROMPT FWString( "Delete" ) ACTION TestDlg()         ;
      FILENAME "..\bitmaps\16x16\delete.bmp" FLAT

   DEFINE BUTTON OF oBar PROMPT FWString( "Setup" )  ACTION TestDlg()         ;
      FILENAME "..\bitmaps\16x16\open32.bmp" FLAT

   DEFINE BUTTON OF oBar PROMPT FWString( "Exit" )   ACTION oWnd:End()        ;
      FILENAME "..\bitmaps\16x16\exit.bmp" FLAT

   SET MESSAGE OF oWnd TO "ButtonBar: " + ;
      FWString("Add") + " | " + FWString("Edit") + " | " + ;
      FWString("Search") + " | " + FWString("Delete") + " | " + FWString("Setup") + ;
      "  [GetACP=" + AllTrim( Str( GetACP() ) ) + ;
      " HBCDP=" + AllTrim( Str( HbCDP() ) ) + "]" 2007

   ACTIVATE WINDOW oWnd MAXIMIZED ;
      VALID MsgYesNo( FWString( "Want to end ?" ), FWString( "Attention" ) )

RETURN NIL

function BuildMenu()

   LOCAL oMenu

   MENU oMenu 2007

  MENUITEM FWString( "&Test" ) // ahora funciona

  MENU

     MENUITEM FWString( "Attention" ) + " - Dialog Test" ACTION TestDlg() ;
        FILENAME "..\bitmaps\16x16\info.bmp"

     SEPARATOR
     MENUITEM "Language &1: English"    ACTION ( FWSetLanguage( 1 ), oWnd:SetMenu( BuildMenu() ), TestDlg() ) ;
        FILENAME "..\bitmaps\16x16\faces.bmp"

     SEPARATOR
     MENUITEM "Language &2: Spanish"    ACTION ( FWSetLanguage( 2 ), oWnd:SetMenu( BuildMenu() ), TestDlg() )  ;
     FILENAME "..\bitmaps\edit.bmp"

     SEPARATOR
     MENUITEM "Language &3: French"     ACTION ( FWSetLanguage( 3 ), oWnd:SetMenu( BuildMenu() ), TestDlg() ) ;
        FILENAME "..\bitmaps\16x16\delete.bmp"

     SEPARATOR
     MENUITEM "Language &4: Portuguese" ACTION ( FWSetLanguage( 4 ), oWnd:SetMenu( BuildMenu() ), TestDlg() ) ;
        FILENAME "..\bitmaps\16x16\browse.bmp"

     SEPARATOR
     MENUITEM "Language &5: German"     ACTION ( FWSetLanguage( 5 ), oWnd:SetMenu( BuildMenu() ), TestDlg() ) ;
        FILENAME "..\bitmaps\16x16\calc.bmp"

     SEPARATOR
     MENUITEM "Language &6: Italian"    ACTION ( FWSetLanguage( 6 ), oWnd:SetMenu( BuildMenu() ), TestDlg() ) ;
        FILENAME "..\bitmaps\16x16\explorer.bmp"

     SEPARATOR
     MENUITEM "&Exit" ACTION oWnd:End() ;
        FILENAME "..\bitmaps\16x16\exit.bmp"

  ENDMENU

   ENDMENU

RETURN( oMenu )

STATIC FUNCTION TestDlg()

   local oDlg, oSay1, oSay2, oBtn1, oBtn2, oBtn3, oBtn4, oChk1, oCbx1
   local cAdd, cEdit, cSearch, cDelete, cSetup, cAttention, cPrintErr
   local aLangs, nSelLang, cTitle, cAtt, cPr

   cAdd       := FWString( "Add" )
   cEdit      := FWString( "Edit" )
   cSearch    := FWString( "Search" )
   cDelete    := FWString( "Delete" )
   cSetup     :=  FWString( "Setup" )
   cAttention := FWString( "Attention" )
   cPrintErr  := FWString( "Printing Error" )

   aLangs     := { FWString( "English" ), FWString( "Spanish" ), FWString( "French" ), ;
                   FWString( "Portuguese" ), FWString( "German" ), FWString( "Italian" ) }
   nSelLang   := FWSetLanguage()

   // ASI, FUNCIONA EN EL BUTTON, NO COMPRENDO ??? jajajaja.
   cAtt := cAttention + SPACE( 02 ) // + " Error" // ERROR IN BUTTON: Attention

   // ASI, NO FUNCIONA EN EL DIALOGO DE FORMA NINGUNA.
   cPr  := cPrintErr  + SPACE( 02 ) // Erro de impressao... con ~

   // no funciona en el titulo del dialogo. ???
   cTitle := "FWH: " + cAtt + " - " + cPr

   // ? cTitle  // Esta correcto, pero no muestra en el dialogo ?

   // ? OemToansi( cAttention ) // error
   // ? AnsiToOem( cAttention ) // error

   // cTitle := "FWH: titulo do dialogo nao esta funcionando"
   DEFINE DIALOG oDlg TITLE cAttention + " / " + cPrintErr SIZE 520, 450

   //-> TITLE CON ERROR. EN PORTUGUES.
   // DEFINE DIALOG oDlg TITLE cTitle SIZE 550, 450 // TRANSPARENT

   oDlg:lHelpIcon := .F.

   // --- SAY controls ---
   @ 0.5, 1 SAY "=== SAY Controls ===" OF oDlg
   @ 1.5, 1 SAY "Add: "       + cAdd       OF oDlg
   @ 2.3, 1 SAY "Edit: "      + cEdit      OF oDlg
   @ 3.1, 1 SAY "Search: "    + cSearch    OF oDlg
   @ 3.9, 1 SAY "Delete: "    + cDelete    OF oDlg
   @ 4.7, 1 SAY "Setup: "     + cSetup     OF oDlg
   @ 5.5, 1 SAY oSay1 PROMPT "Attention: " + cAttention OF oDlg
   @ 6.3, 1 SAY oSay2 PROMPT "Print Error: "  + cPrintErr  OF oDlg

   // --- BUTTON controls ---
   @ 0.5, 16 SAY "=== BUTTON Controls ===" OF oDlg
   @ 1.5, 16 BUTTON oBtn1 PROMPT cAdd      OF oDlg SIZE 50, 12 ACTION MsgInfo( cAdd )

   @ 3.0, 16 BUTTON oBtn2 PROMPT cEdit     OF oDlg SIZE 50, 12 ACTION MsgInfo( cEdit )

   @ 4.5, 16 BUTTON oBtn3 PROMPT cSearch   OF oDlg SIZE 50, 12 ACTION MsgInfo( cSearch )

   // --- More buttons with accented text ---
   @ 0.5, 26 SAY "=== More Buttons ===" OF oDlg

   // AQUI, TAMBIEN MUESTRA cAttention CON ERROR EN PORTUGUES. CON SPACE(02), FUNCIONA.
   //   @ 1.5, 26 BUTTON cAttention OF oDlg SIZE 50, 12 ACTION MsgInfo( cAttention )
   @ 1.5, 26 BUTTON cAtt       OF oDlg SIZE 50, 12 ACTION MsgInfo( cAttention )

   @ 3.0, 26 BUTTON cPrintErr  OF oDlg SIZE 50, 12 ACTION MsgInfo( cPrintErr )
   @ 4.5, 26 BUTTON oBtn4 PROMPT cDelete OF oDlg SIZE 50, 12 ACTION MsgInfo( cDelete )
   

   // --- CHECKBOX controls ---
   @ 7.5, 1 SAY "=== CHECKBOX ===" OF oDlg
   @ 9.5, 1.5 CHECKBOX oChk1 VAR lDummy1 PROMPT cAdd OF oDlg SIZE 50, 12

   // --- COMBOBOX control ---
   @ 7.5, 16 SAY "=== COMBOBOX ===" OF oDlg
   @ 9.5, 16 COMBOBOX oCbx1 VAR nSelLang ITEMS aLangs OF oDlg SIZE 120, 150

   // --- Debug info ---
   @ 10.5, 1 SAY "=== Debug Info ===" OF oDlg
   @ 11.3, 1 SAY 'Add="' + cAdd + '" hex=' + StrToHex( cAdd ) OF oDlg
   @ 12.1, 1 SAY 'Attention="' + cAttention + '" hex=' + StrToHex( cAttention ) OF oDlg
   @ 12.9, 1 SAY "GetACP()=" + AllTrim( Str( GetACP() ) ) + ;
                 " GetOEMCP()=" + AllTrim( Str( GetOEMCP() ) ) + ;
                 " HbCDP=" + AllTrim( Str( HbCDP() ) ) OF oDlg

   // Show IsWindowUnicode info after dialog is created
   @ 14.2, 1 BUTTON "&Diagnose" OF oDlg SIZE 50, 13 ;
      ACTION DiagnoseControls( oDlg, oSay1, oBtn1, oChk1, oCbx1 )

   @ 14.2, 15 BUTTON "&Ok" OF oDlg SIZE 45, 13 ACTION oDlg:End()

   @ 14.2, 26 BUTTON "&Cancel" OF oDlg SIZE 45, 13 ACTION oDlg:End()

   ACTIVATE DIALOG oDlg CENTERED ;
      ON INIT DiagnoseControls( oDlg, oSay1, oBtn1, oChk1, oCbx1 )

return nil

static function DiagnoseControls( oDlg, oSay, oBtn, oChk, oCbx )

   local cInfo := ""

   cInfo += "Dialog hWnd Unicode: " + cYesNo( IsWindowUnicode( oDlg:hWnd ) ) + CRLF
   if oSay != nil
      cInfo += "SAY hWnd Unicode: " + cYesNo( IsWindowUnicode( oSay:hWnd ) ) + ;
               " lUnicode=" + cYesNo( oSay:lUnicode ) + CRLF
   endif
   if oBtn != nil
      cInfo += "BUTTON hWnd Unicode: " + cYesNo( IsWindowUnicode( oBtn:hWnd ) ) + ;
               " lUnicode=" + cYesNo( oBtn:lUnicode ) + CRLF
   endif
   if oChk != nil
      cInfo += "CHECKBOX hWnd Unicode: " + cYesNo( IsWindowUnicode( oChk:hWnd ) ) + ;
               " lUnicode=" + cYesNo( oChk:lUnicode ) + CRLF
   endif
   if oCbx != nil
      cInfo += "COMBOBOX hWnd Unicode: " + cYesNo( IsWindowUnicode( oCbx:hWnd ) ) + ;
               " lUnicode=" + cYesNo( oCbx:lUnicode ) + CRLF
   endif
   cInfo += CRLF
   cInfo += "GetACP() = " + AllTrim( Str( GetACP() ) ) + CRLF
   cInfo += "GetOEMCP() = " + AllTrim( Str( GetOEMCP() ) ) + CRLF
   cInfo += "HbCDP() = " + AllTrim( Str( HbCDP() ) ) + CRLF
   cInfo += "FW_SetUnicode() = " + cYesNo( FW_SetUnicode() ) + CRLF
   cInfo += CRLF
   cInfo += "FWString('Add') = " + FWString("Add") + " hex=" + StrToHex( FWString("Add") ) + CRLF
   cInfo += "FWString('Attention') = " + FWString("Attention") + " hex=" + StrToHex( FWString("Attention") ) + CRLF
   cInfo += "FWString('Printing Err') = " + FWString("Printing Error") + " hex=" + StrToHex( FWString("Printing Error") )

   MsgInfo( cInfo, "Diagnostic Info" )

return nil

static function cYesNo( l )
return If( l, "YES", "NO" )

static function StrToHex( cStr )

   local n, cHex := ""

   for n := 1 to Min( Len( cStr ), 20 )
      cHex += PadL( hb_NumToHex( Asc( SubStr( cStr, n, 1 ) ) ), 2, "0" )
      if n < Min( Len( cStr ), 20 )
         cHex += " "
      endif
   next

return cHex

// FIN / END

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: FWH 26.03 betatesters wanted
Posted: Sun Mar 29, 2026 04:39 PM

Muchas gracias Joao :)

Nueva beta disponible :idea:

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1387
Joined: Fri May 23, 2008 01:33 PM
Re: FWH 26.03 betatesters wanted
Posted: Mon Mar 30, 2026 01:18 PM

Hello. I was able to compile my own application without errors using version 26.03 beta.

The first error I encountered while testing the application was a runtime error related to the use of TFolder. Upon examining the class, it seems some improvements have been made. During these improvements, a logical error seems to have occurred when creating the aDialogs within the folder in the New() method.

Although compiling and running the folder.prg file in samples\misc doesn't result in an error, for some reason, the dialogs within the folder don't appear in my application, and I get a runtime error. The fix I made according to my own conditions, as described below, solved the problem. For your information.

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

METHOD New( nTop, nLeft, aPrompts, aDialogs, oWnd, nOption, nClrFore,;
      nClrBack, lPixel, lDesign, nWidth, nHeight, cMsg, lAllWidth,;
      oFont, aHelps, cVarName ) CLASS TFolder

   local n, oDlg
   local lEmptyInit := ( PCount() == 0 )
.
.
   ::cVarName = cVarName

   if ! Empty( ::aPrompts ) //.and. ! Empty( oWnd:hWnd )    <- I made the change here. As you'll notice, `oWnd` is checked even though it's not used in this loop.
      for n = 1 to Len( ::aDialogs )
         oDlg = TFolderDialog():New( 0, 0, ::nHeight() - ::nFdHeight - 5, ::nWidth() - 6, ;
            nil, nil, nil, nil, nOr( WS_CHILD ), nClrFore, nClrBack, nil, Self, .T., ;
            nil, Self:oFont, if(len(::aHelps) >= n , ::aHelps[n] , NIL) )
         ::aDialogs[ n ] = oDlg
         oDlg:cVarName = "Page" + AllTrim( Str( n ) )
      next
   endif
Regards,



Hakan ONEMLI



Harbour & MSVC 2022 & FWH 23.06
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: FWH 26.03 betatesters wanted
Posted: Mon Mar 30, 2026 02:36 PM

Dear Hakan,

What beta are you using ?

Yesterday we distributed beta 9 on whatsapp FWH 26.03 beta-testers group :idea:

regards, saludos

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

fwh 26.03 beta 9

testfld2.prg - Compile with Harbour and BCC or MSVC

error.log

[code]Application

Path and name: C:\fwh_032026\samples\test\testfld2.exe (32 bits)
Size: 4,377,600 bytes
Compiler version: Harbour 3.2.0dev (r2503251254)
FiveWin version: FWH 26.03
C compiler version: Microsoft Visual C 19.32.31329 (32-bit)
Windows 10 64 Bits, version: 6.2, Build 9200

Time from start: 0 sec
Error occurred at: 03/30/26, 17:54:31
Error description: Error BASE/1004 No exported method: MOVE
Args:
[ 1] = U
[ 2] = N 24
[ 3] = N 2

Stack Calls

Called from: => MOVE( 0 )
Called from: source\classes\folder.prg => (b)TFOLDER_ADJUSTRECT( 1208 )
Called from: => AEVAL( 0 )
Called from: source\classes\folder.prg => TFOLDER:ADJUSTRECT( 1208 )
Called from: source\classes\folder.prg => TFOLDER:INITIATE( 377 )
Called from: => __OBJSENDMSG( 0 )
Called from: source\function\harbour.prg => OSEND( 296 )
Called from: source\function\harbour.prg => ASEND( 264 )
Called from: source\classes\dialog.prg => TDIALOG:INITIATE( 933 )
Called from: source\classes\dialog.prg => TDIALOG:HANDLEEVENT( 1274 )
Called from: => DIALOGBOX( 0 )
Called from: source\classes\dialog.prg => TDIALOG:ACTIVATE( 338 )
Called from: testfld2.prg => MAIN( 39 )

System

CPU type: Intel(R) Core(TM) i7-4702HQ CPU @ 2.20GHz 2195 Mhz
Hardware memory: 16288 megs

Free System resources: 90 %
GDI resources: 90 %
User resources: 90 %

Windows total applications running: 1
1 ,

Variables in use

Procedure Type Value


==========================

MOVE
Param 1: O Class: ERROR
(b)TFOLDER_ADJUSTRECT
Param 1: N 24
Param 2: N 2
Local 1: U
Local 2: U
AEVAL
Param 1: U
Param 2: N 3
TFOLDER:ADJUSTRECT
Param 1: A Len: 4
Param 2: B {|| ... }
TFOLDER:INITIATE
Local 1: A Len: 4
__OBJSENDMSG
Param 1: N 1050832
Local 1: N 3
OSEND
Param 1: O Class: TFOLDER
Param 2: C "INITIATE"
Param 3: N 1050832
ASEND
Param 1: O Class: TFOLDER
Param 2: C "INITIATE"
Param 3: N 1050832
TDIALOG:INITIATE
Param 1: A Len: 2
Param 2: C "INITIATE()"
Param 3: N 1050832
Local 1: S @OSEND()
TDIALOG:HANDLEEVENT
Param 1: N 3211946
Param 2: N 1050832
Local 1: L .T.
Local 2: U
Local 3: U
Local 4: L .F.
Local 5: U
Local 6: U
DIALOGBOX
Param 1: N 272
Param 2: N 3211946
Param 3: N 1050832
TDIALOG:ACTIVATE
Param 1: N 12713984
Param 2: C "Test"
Param 3: N 0
Param 4: O Class: TDIALOG
MAIN
Param 1: U
Param 2: U
Param 3: U
Param 4: L .T.
Param 5: U
Param 6: L .T.
Param 7: U
Param 8: U
Param 9: U
Param 10: U
Param 11: U
Param 12: L .F.
Param 13: O Class: TDIALOG
Param 14: U
Param 15: U
Local 1: N 0
Local 2: S @_NRESULT()
Local 3: O Class: TDIALOG

Linked RDDs

DBF
DBFFPT
DBFBLOB
DBFCDX
DBFNTX

Databases in use

Classes in use:

1 ERROR
2 HBCLASS
3 HBOBJECT
4 TWINDOW
5 TDIALOG
6 TBRUSH
7 TCONTROL
8 TFOLDER
9 TFONT
10 TREG32
11 TFOLDERDIALOG
12 TCOMBOBOX
13 TGET
14 GET
15 TCLIPGET
16 TBUTTON
17 TSTRUCT

Memory Analysis

736 Static variables

Dynamic memory consume:
Actual Value: 1048576 bytes
Highest Value: 1048576 bytes
[/code]

Regards



Ing. Anton Lerchster
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: FWH 26.03 betatesters wanted
Posted: Mon Mar 30, 2026 04:40 PM

Confirmo que hay un error en todos los archivos TESFLD?.PRG.

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1387
Joined: Fri May 23, 2008 01:33 PM
Re: FWH 26.03 betatesters wanted
Posted: Mon Mar 30, 2026 04:49 PM
Antonio Linares wrote:

Dear Hakan,

What beta are you using ?

Yesterday we distributed beta 9 on whatsapp FWH 26.03 beta-testers group :idea:

beta 9. I think last beta.

Regards,



Hakan ONEMLI



Harbour & MSVC 2022 & FWH 23.06
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: FWH 26.03 betatesters wanted
Posted: Wed Apr 01, 2026 05:21 AM
karinha wrote:

Confirmo que hay un error en todos los archivos TESFLD?.PRG.

Regards, saludos.

Arreglado :idea: :wink:

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1387
Joined: Fri May 23, 2008 01:33 PM
Re: FWH 26.03 betatesters wanted
Posted: Thu Apr 02, 2026 02:48 PM

Hi Antonio,
I'm testing fwh 2603. I think Turkish characters are still corrupted due to fwUnicode(.f.) and theme-defined conditions. We previously solved this problem in the thread below. I'm sending an example. Thank you.

https://forums.fivetechsupport.com/viewtopic.php?p=267482#p267482

turkish.rc

1 24 "WindowsXP.Manifest"
#include "fivewin.ch"

REQUEST HB_CODEPAGE_TRWIN

function Main()

   local oDlg, oGet, oFont, nKey := 0
   local cVar  := Space( 10 )

   HB_CDPSELECT( "TRWIN" )
   FW_SetUnicode( .f. )
   SetGetColorFocus()

   DEFINE FONT oFont NAME "Segoe UI" SIZE 0,-20 CHARSET 162 // Use the charset that works for you

   DEFINE DIALOG oDlg SIZE 450,300 PIXEL TRUEPIXEL FONT oFont ;
      TITLE FWVERSION

   @  40, 40 GET oGet VAR cVar SIZE 200,32 PIXEL OF oDlg ON CHANGE oDlg:Update()

   oGet:bKeyChar  := { |k| nKey := k }

   @  40,300 SAY { || "Key: " + Str( nKey, 3 ) } SIZE 120,30 PIXEL UPDATE

   @  80, 40 SAY { || StrToHex( Trim( cVar ), " " ) } SIZE 390,32 PIXEL OF oDlg UPDATE

   @ 120, 40 SAY { || ListAsc( cVar ) } SIZE 390,70 PIXEL OF oDlg UPDATE

   @ 200, 40 SAY { || If( IsWindowUnicode( oGet:hWnd ), "UTF8", "ANSI" ) + ;
      " GET" } SIZE 200,32 PIXEL OF oDlg UPDATE

   @ 200,310 BUTTON "CLOSE" SIZE 100,40 PIXEL OF oDlg ACTION oDlg:End()

   ACTIVATE DIALOG oDlg CENTERED

   cVar  := Trim( cVar )

   ? cVar, StrToHex( cVar ), IsUtf8( cVar )

return nil

static function ListAsc( cVar )

   local aList := {}
   local c

   cVar  := Trim( cVar )
   for each c in cVar
      AAdd( aList, ASC( c ) )
   next

return FW_ArrayAsList( aList )
Regards,



Hakan ONEMLI



Harbour & MSVC 2022 & FWH 23.06
Posts: 104
Joined: Tue Feb 09, 2021 04:20 PM
Re: FWH 26.03 betatesters wanted
Posted: Sat Apr 04, 2026 09:19 PM

I am using fwh 26.03 as normal use. gtwvg + fivewin + hwgui + multithread + my own ado wrapper class harbour 3.2 from github with no extras, compiled here mingw 15.2 No problem with my current use.

José M. C. Quintas Brazil

gtwvg, fivewin 25.12, hwgui, mingw 15.2 (32 bits)

Posts: 1387
Joined: Fri May 23, 2008 01:33 PM
Re: FWH 26.03 betatesters wanted
Posted: Mon Apr 20, 2026 01:14 PM
Horizon wrote:

Hi Antonio,
I'm testing fwh 2603. I think Turkish characters are still corrupted due to fwUnicode(.f.) and theme-defined conditions. We previously solved this problem in the thread below. I'm sending an example. Thank you.

https://forums.fivetechsupport.com/viewtopic.php?p=267482#p267482

turkish.rc

1 24 "WindowsXP.Manifest"
#include "fivewin.ch"

REQUEST HB_CODEPAGE_TRWIN

function Main()

   local oDlg, oGet, oFont, nKey := 0
   local cVar  := Space( 10 )

   HB_CDPSELECT( "TRWIN" )
   FW_SetUnicode( .f. )
   SetGetColorFocus()

   DEFINE FONT oFont NAME "Segoe UI" SIZE 0,-20 CHARSET 162 // Use the charset that works for you

   DEFINE DIALOG oDlg SIZE 450,300 PIXEL TRUEPIXEL FONT oFont ;
      TITLE FWVERSION

   @  40, 40 GET oGet VAR cVar SIZE 200,32 PIXEL OF oDlg ON CHANGE oDlg:Update()

   oGet:bKeyChar  := { |k| nKey := k }

   @  40,300 SAY { || "Key: " + Str( nKey, 3 ) } SIZE 120,30 PIXEL UPDATE

   @  80, 40 SAY { || StrToHex( Trim( cVar ), " " ) } SIZE 390,32 PIXEL OF oDlg UPDATE

   @ 120, 40 SAY { || ListAsc( cVar ) } SIZE 390,70 PIXEL OF oDlg UPDATE

   @ 200, 40 SAY { || If( IsWindowUnicode( oGet:hWnd ), "UTF8", "ANSI" ) + ;
      " GET" } SIZE 200,32 PIXEL OF oDlg UPDATE

   @ 200,310 BUTTON "CLOSE" SIZE 100,40 PIXEL OF oDlg ACTION oDlg:End()

   ACTIVATE DIALOG oDlg CENTERED

   cVar  := Trim( cVar )

   ? cVar, StrToHex( cVar ), IsUtf8( cVar )

return nil

static function ListAsc( cVar )

   local aList := {}
   local c

   cVar  := Trim( cVar )
   for each c in cVar
      AAdd( aList, ASC( c ) )
   next

return FW_ArrayAsList( aList )

I have tested with fwh 26.03 beta 10. The same problem persists.

Regards,



Hakan ONEMLI



Harbour & MSVC 2022 & FWH 23.06
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: FWH 26.03 betatesters wanted
Posted: Tue Apr 21, 2026 05:58 AM

Dear Hakan,

What turkish word should I write in the example ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 6983
Joined: Fri Oct 07, 2005 07:07 PM
Re: FWH 26.03 betatesters wanted
Posted: Tue Apr 21, 2026 06:09 AM

I think the issue in this example is here:

FW_SetUnicode( .f. )

You are explicitly disabling Unicode, so everything falls back to ANSI:

Windows controls run in ANSI mode The selected codepage (e.g. TRWIN) dictates character interpretation

At that point, you are no longer dealing with Unicode at all — just legacy codepages. Any corruption of Turkish characters is expected behavior in this setup.

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: FWH 26.03 betatesters wanted
Posted: Tue Apr 21, 2026 06:35 AM

Please try it this way. Here it seems to work fine:

#include "fivewin.ch"

REQUEST HB_CODEPAGE_TRWIN

function Main()

   local oDlg, oGet, oFont, nKey := 0
   local cVar  := "Teşekkürler     "

   HB_CDPSELECT( "TRWIN" )
   FW_SetUnicode( .t. )
   SetGetColorFocus()

   DEFINE FONT oFont NAME "Segoe UI" SIZE 0,-20 CHARSET 162 // Use the charset that works for you

   DEFINE DIALOG oDlg SIZE 450,300 PIXEL TRUEPIXEL FONT oFont ;
      TITLE FWVERSION

   @  40, 40 GET oGet VAR cVar SIZE 200,32 PIXEL OF oDlg ON CHANGE oDlg:Update()

   oGet:bKeyChar  := { |k| nKey := k }

   @  40,300 SAY { || "Key: " + Str( nKey, 3 ) } SIZE 120,30 PIXEL UPDATE

   @  80, 40 SAY { || StrToHex( Trim( cVar ), " " ) } SIZE 390,32 PIXEL OF oDlg UPDATE

   @ 120, 40 SAY { || ListAsc( cVar ) } SIZE 390,70 PIXEL OF oDlg UPDATE

   @ 200, 40 SAY { || If( IsWindowUnicode( oGet:hWnd ), "UTF8", "ANSI" ) + ;
      " GET" } SIZE 200,32 PIXEL OF oDlg UPDATE

   @ 200,310 BUTTON "CLOSE" SIZE 100,40 PIXEL OF oDlg ACTION oDlg:End()

   ACTIVATE DIALOG oDlg CENTERED

   cVar  := Trim( cVar )

   MsgAlert( cVar, "Teşekkürler" )

   ? cVar, StrToHex( cVar ), IsUtf8( cVar )

return nil

static function ListAsc( cVar )

   local aList := {}
   local c

   cVar  := Trim( cVar )
   for each c in cVar
      AAdd( aList, ASC( c ) )
   next

return FW_ArrayAsList( aList )



regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion