Unicode malfunction according to modal / nomodal format

Post Reply
kkwan
Posts: 10
Joined: Tue Apr 17, 2018 11:39 am

Unicode malfunction according to modal / nomodal format

Post by kkwan »

For Unicode and UTF8 use
In the modal / nomodal dialog, tGet and mget control malfunction.
It works fine regardless of richiedit.

In other words
Activate Dialog == No abnormality
Activate Dialog NoModal == malfunction

In the future, most of the source coding will be in the MDI window
Dialog Child / NoModal type, so UTF8 input is required.

The current project execution is stopped.
Please help.

msc2017 use FWH 18.02
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Unicode malfunction according to modal / nomodal format

Post by Antonio Linares »

We are checking it, please wait one day or two, thanks
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Unicode malfunction according to modal / nomodal format

Post by Antonio Linares »

We are testing this example:

unimdi.prg

Code: Select all

#include "fivewin.ch"

static aStr[ 5 ]

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

function Main()

   local oWnd, oBar, oFont

   FW_SetUnicode( .T. )
   SetGetColorFocus()

   AEval( aStr, { |u,i| aStr[ i ] := Space( 25 ) } )

   DEFINE FONT oFont NAME "Segoe UI" SIZE 0,-18

   DEFINE WINDOW oWnd MDI TITLE "UNICODE GETS"

   DEFINE BUTTONBAR oBar SIZE 80,60 2007
   DEFINE BUTTON OF oBar PROMPT "MDI" + CRLF +  "Child"      CENTER ACTION ChildWindow()
   DEFINE BUTTON OF oBar PROMPT "Modal" + CRLF + "Dialog" CENTER ACTION NewDialog( .T. )
   DEFINE BUTTON OF oBar PROMPT "Nonmodal" + CRLF + "Dialog" CENTER ACTION NewDialog()

   oWnd:SetFont( oFont )

   ACTIVATE WINDOW oWnd
   RELEASE FONT oFont

return nil

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

static function ChildWindow()

   local oWnd

   DEFINE WINDOW oWnd MDICHILD OF WndMain() COLOR CLR_BLACK, CLR_WHITE

   CreateGets( oWnd )
   oWnd:bGotFocus := { || oWnd:Update() }

   ACTIVATE WINDOW oWnd


return nil

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

static function NewDialog( lModal )

   local oDlg

   DEFAULT lModal := .f.

   DEFINE DIALOG oDlg SIZE 460, 260 PIXEL TRUEPIXEL FONT WndMain():oFont
   CreateGets( oDlg )
   oDlg:bGotFocus := { || oDlg:Update() }

   if lModal
      ACTIVATE DIALOG oDlg CENTERED
   else
      ACTIVATE DIALOG oDlg CENTERED NOMODAL
   endif

return nil

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

static function CreateGets( oWnd )

   local nRow := 60

   @ nRow, 30 GET aStr[ 1 ] SIZE 400,32 PIXEL OF oWnd CHRGROUP CHR_WIDE UPDATE
   nRow  += 35
   @ nRow, 30 GET aStr[ 2 ] SIZE 400,32 PIXEL OF oWnd CHRGROUP CHR_WIDE UPDATE
   nRow  += 35
   @ nRow, 30 GET aStr[ 3 ] SIZE 400,32 PIXEL OF oWnd CHRGROUP CHR_WIDE UPDATE
   nRow  += 35
   @ nRow, 30 GET aStr[ 4 ] SIZE 400,32 PIXEL OF oWnd CHRGROUP CHR_WIDE UPDATE

return nil

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

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Unicode malfunction according to modal / nomodal format

Post by Antonio Linares »

As a temporary workaround, if you create the GETs this way, then unicode works fine on NONMODAL dialogs:

ACTIVATE DIALOG oDlg CENTERED NOMODAL ;
ON INIT CreateGets( oDlg )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: Unicode malfunction according to modal / nomodal format

Post by nageswaragunupudi »

This is the revised program:

Code: Select all

#include "fivewin.ch"

static aStr[ 4 ]

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

function Main()

   local oWnd, oBar, oFont

   FW_SetUnicode( .T. )
   SetGetColorFocus()

   AEval( aStr, { |u,i| aStr[ i ] := Space( 25 ) } )

   DEFINE FONT oFont NAME "Segoe UI" SIZE 0,-18

   DEFINE WINDOW oWnd MDI TITLE "UNICODE GETS"

   DEFINE BUTTONBAR oBar SIZE 80,60 2007
   DEFINE BUTTON OF oBar PROMPT "MDI" + CRLF +  "Child"      CENTER ACTION ChildWindow()
   DEFINE BUTTON OF oBar PROMPT "Nonmodal" + CRLF + "Dialog" CENTER ACTION NewDialog()
   DEFINE BUTTON OF oBar PROMPT "Modal" + CRLF + "Dialog"    CENTER ACTION NewDialog( .t. )

   oWnd:SetFont( oFont )

   ACTIVATE WINDOW oWnd
   RELEASE FONT oFont

return nil

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

static function ChildWindow()

   local oWnd

   DEFINE WINDOW oWnd MDICHILD OF WndMain() TITLE "MDI CHILD WINDOW" COLOR CLR_BLACK, CLR_WHITE
   CreateGets( oWnd )
   oWnd:bGotFocus := { || oWnd:Update() }
   ACTIVATE WINDOW oWnd

return nil

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

static function NewDialog( lModal )

   local oDlg

   DEFAULT lModal := .f.

   DEFINE DIALOG oDlg SIZE 460, 260 PIXEL TRUEPIXEL FONT WndMain():oFont ;
      TITLE If( lModal, "MODAL DIALOG", "NON-MODAL DIALOG" )

   oDlg:bGotFocus := { || oDlg:Update() }

   if lModal

      CreateGets( oDlg )

      ACTIVATE DIALOG oDlg CENTERED

   else

      ACTIVATE DIALOG oDlg CENTERED NOMODAL ON INIT CreateGets( oDlg )

   endif

return nil

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

static function CreateGets( oWnd )

   local nRow

   nRow     := 60

   @ nRow, 30 GET aStr[ 1 ] SIZE 400,32 PIXEL OF oWnd CHRGROUP CHR_WIDE UPDATE
   nRow  += 35
   @ nRow, 30 GET aStr[ 2 ] SIZE 400,32 PIXEL OF oWnd CHRGROUP CHR_WIDE UPDATE
   nRow  += 35
   @ nRow, 30 GET aStr[ 3 ] SIZE 400,32 PIXEL OF oWnd CHRGROUP CHR_WIDE UPDATE
   nRow  += 35
   @ nRow, 30 GET aStr[ 4 ] SIZE 400,32 PIXEL OF oWnd CHRGROUP CHR_WIDE UPDATE

return nil

//----------------------------------------------------------------------------//
 
Unicode Gets on MDICHILD windows, modal and non-modal Dialogs work as expected.
Regards

G. N. Rao.
Hyderabad, India
kkwan
Posts: 10
Joined: Tue Apr 17, 2018 11:39 am

Re: Unicode malfunction according to modal / nomodal format

Post by kkwan »

Thank you for your quick reply.
The solution you provided was effective.
However, if you install various controls besides TGET Control
It will malfunction like before.
It seems to have avoided the bug with time difference.
It can be a useful tip for a very simple screen design.
Let's wait for more bug-resolved products.
Thank you.
kkwan
Posts: 10
Joined: Tue Apr 17, 2018 11:39 am

Re: Unicode malfunction according to modal / nomodal format

Post by kkwan »

When is Unicode malfunction possible?
User avatar
richard-service
Posts: 583
Joined: Tue Oct 16, 2007 8:57 am
Location: New Taipei City, Taiwan
Contact:

Re: Unicode malfunction according to modal / nomodal format

Post by richard-service »

Hi
My program

Code: Select all

REDEFINE GET ::oEX_WHO VAR ::cEX_WHO ID 101 OF ::oDlg UPDATE CHRGROUP CHR_WIDE
ACTIVATE DIALOG ::oDlg CENTER 
 
Change to

Code: Select all

DEFINE WINDOW go31001Wnd FROM 0, 0 TO 0, 0         
...
DEFINE DIALOG ::oDlg RESOURCE ::cResName FONT oFont BRUSH oBrush TRANSPARENT OF go31001Wnd 

REDEFINE GET ::oEX_WHO VAR ::cEX_WHO ID 101 OF ::oDlg UPDATE CHRGROUP CHR_WIDE
ACTIVATE DIALOG ::oDlg NOWAIT

go31001Wnd:bGotFocus := { || go31001Wnd:Update() }
ACTIVATE WINDOW go31001Wnd CENTER      
 
Image

use Only Dialog input Chinese fine.
Change MDI and input Chinese not work. input "新" show "送"

Any solution?
Last edited by richard-service on Sun Jul 21, 2019 4:59 am, edited 1 time in total.
Regards,

Richard

Harbour 3.2.0dev (r1904111533)/xHarbour 1.2.3 Intl. (SimpLex) (Build 20180818) => Borland C++ v7.4
xHarbour 0.99.71 (SimpLex) => Borland C++ v5.5
MySQL v5.7 /ADS v12
Harbour 3.2.0dev (r1603181642) => Borland C++ v7.4 64bit
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: Unicode malfunction according to modal / nomodal format

Post by nageswaragunupudi »

Can you please try

Code: Select all

DEFINE DIALOG ....
// Define Gets and other controls
ACTIVATE DIALOG oDlg AS MDICHILD
 
Regards

G. N. Rao.
Hyderabad, India
User avatar
richard-service
Posts: 583
Joined: Tue Oct 16, 2007 8:57 am
Location: New Taipei City, Taiwan
Contact:

Re: Unicode malfunction according to modal / nomodal format

Post by richard-service »

nageswaragunupudi wrote:Can you please try

Code: Select all

DEFINE DIALOG ....
// Define Gets and other controls
ACTIVATE DIALOG oDlg AS MDICHILD
 
I change to

Code: Select all

ACTIVATE DIALOG ::oDlg AS MDICHILD         ;
              ON INIT  ( oThis:oDlg:Move(0,0) ) ;
              VALID !paOpenWnd[IS_WSE31002]
 
I lose buttonbar ... control and got error, this not I want it.

Image
Regards,

Richard

Harbour 3.2.0dev (r1904111533)/xHarbour 1.2.3 Intl. (SimpLex) (Build 20180818) => Borland C++ v7.4
xHarbour 0.99.71 (SimpLex) => Borland C++ v5.5
MySQL v5.7 /ADS v12
Harbour 3.2.0dev (r1603181642) => Borland C++ v7.4 64bit
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: Unicode malfunction according to modal / nomodal format

Post by nageswaragunupudi »

Please reproduce the error.log.
Do you have the problem in mdi-dialog only or in normal dialogs also?
Regards

G. N. Rao.
Hyderabad, India
User avatar
richard-service
Posts: 583
Joined: Tue Oct 16, 2007 8:57 am
Location: New Taipei City, Taiwan
Contact:

Re: Unicode malfunction according to modal / nomodal format

Post by richard-service »

nageswaragunupudi wrote:Please reproduce the error.log.
Do you have the problem in mdi-dialog only or in normal dialogs also?

Code: Select all

ACTIVATE DIALOG ::oDlg NOWAIT              ;
                    ON INIT  ( oThis:oDlg:Move(0,0) ) ;
                    VALID !paOpenWnd[IS_WSE31001]
 
This code, I can working. But TGet input Chinese not work. Look my attach first gif.

Code: Select all

ACTIVATE DIALOG ::oDlg AS MDICHILD              ;
                    ON INIT  ( oThis:oDlg:Move(0,0) ) ;
                    VALID !paOpenWnd[IS_WSE31001]
 
This code. I change NOWAIT to AS MDICHILD . Child Window and Dialog not work. Look my attach Second gif.
Regards,

Richard

Harbour 3.2.0dev (r1904111533)/xHarbour 1.2.3 Intl. (SimpLex) (Build 20180818) => Borland C++ v7.4
xHarbour 0.99.71 (SimpLex) => Borland C++ v5.5
MySQL v5.7 /ADS v12
Harbour 3.2.0dev (r1603181642) => Borland C++ v7.4 64bit
User avatar
richard-service
Posts: 583
Joined: Tue Oct 16, 2007 8:57 am
Location: New Taipei City, Taiwan
Contact:

Re: Unicode malfunction according to modal / nomodal format

Post by richard-service »

Hi Mr.Rao

Look it.

not work=> Child Window+Resource Dialog( ACTIVATE DIALOG ::oDlg NOWAIT )

Image


Work OK=> Child Window+Resource Dialog( ACTIVATE DIALOG ::oDlg NOWAIT ) and I Open another Resource Dialog for New/Edit data

Image
Regards,

Richard

Harbour 3.2.0dev (r1904111533)/xHarbour 1.2.3 Intl. (SimpLex) (Build 20180818) => Borland C++ v7.4
xHarbour 0.99.71 (SimpLex) => Borland C++ v5.5
MySQL v5.7 /ADS v12
Harbour 3.2.0dev (r1603181642) => Borland C++ v7.4 64bit
User avatar
richard-service
Posts: 583
Joined: Tue Oct 16, 2007 8:57 am
Location: New Taipei City, Taiwan
Contact:

Re: Unicode malfunction according to modal / nomodal format

Post by richard-service »

nageswaragunupudi wrote:Please reproduce the error.log.
Do you have the problem in mdi-dialog only or in normal dialogs also?
Any solution?
Regards,

Richard

Harbour 3.2.0dev (r1904111533)/xHarbour 1.2.3 Intl. (SimpLex) (Build 20180818) => Borland C++ v7.4
xHarbour 0.99.71 (SimpLex) => Borland C++ v5.5
MySQL v5.7 /ADS v12
Harbour 3.2.0dev (r1603181642) => Borland C++ v7.4 64bit
Post Reply