Professional UI Solutions
Site Map   /  Register
 
 

Forum

Please Log In to post a new message or reply to an existing one. If you are not registered, please register.

NOTE: Some forums may be read-only if you are not currently subscribed to our technical support services.

Forums » Prof-UIS Tech Support » CExtGridCell problem while entering dot (Shift + ; key - French keyboard) Collapse All
Subject Author Date
Fabien Masson Dec 16, 2008 - 5:39 PM

Dear Support Team,

We are using Prof’UIS for years now and we are using 2.82 release for a while now.
I planned to migrate to 2.84 beginning of next year.

One of my customer call me with a very weird bug : he couldn’t enter a . (dot) by pressing Shift and ; key (French keyboard of laptop and normal French Keyboard as well) !
Dot is ok when entering it with the keypad. All others keys are ok as well, with or without Shift pressed !

I tried to debug as deeper as I can ; but I’m a bit stuck to follow correctly the problem (even if I am using 2 monitors).

Are you aware of this problem ?
Any tips ?
Any reasons ?

Does this problem exists with 2.83 and/or 2.84 ?

Thanks for your support.
Best regards,
Fabien.

Fabien Masson Dec 23, 2008 - 10:38 AM

Dear Support,

I tried the reverse tests as yours (english profile with a french keyboard) and I’m getting the normal "<" on the key i’m supposed to get a dot with french profile.

Is this bug related to the fact that it’s normal behavior for keypad (Shift + dot produce a special event) ?
I remember that you re not sending this event with "normal" keyboard and with my key stroke.

Hope this helps for removing this nasty bug.

Regards,
Fabien.

Technical Support Dec 24, 2008 - 8:02 AM

It looks we fixed this issue. We added two lines of code into the CExtGridWnd::OnGbwBeginEdit() method:

                                                   if(                     ( bCtrl && (!bShift) && int(msg.wParam) == int( _T(’X’) ) )
                                                                        ||           ( (!bCtrl) && bShift && int(msg.wParam) == VK_DELETE )
                                                                        )
                                                            {
                                                                        if( ::DispatchMessage( &msg ) == 0 ) // THE FOLLOWING LINE WAS ADDED
                                                                                    continue; // THE FOLLOWING LINE WAS ADDED
                                                                        LRESULT lResult = 0L;
                                                                        g_pEditCell->OnInplaceControlWindowProc(
                                                                                    lResult,
                                                                                    msg.message,
                                                                                    msg.wParam,
                                                                                    msg.lParam,
                                                                                    msg.hwnd,
                                                                                    *this,
                                                                                    nVisibleColNo,
                                                                                    nVisibleRowNo,
                                                                                    nColNo,
                                                                                    nRowNo,
                                                                                    nColType,
                                                                                    nRowType,
                                                                                    rcCellExtra,
                                                                                    rcCell,
                                                                                    rcInplaceControl
                                                                                    );
                                                                        ::PeekMessage(&msg,NULL,msg.message,msg.message,PM_REMOVE);
                                                                        if( msg.message == WM_KEYDOWN )
                                                                        {
                                                                                    if( ( g_pEditCell->GetStyle() & __EGCS_READ_ONLY ) == 0 )
                                                                                                ::SendMessage( msg.hwnd, WM_CUT, 0, 0 );
                                                                                    else
                                                                                                ::SendMessage( msg.hwnd, WM_COPY, 0, 0 );
                                                                        }
                                                                        continue;
                                                            }


Fabien Masson Dec 25, 2008 - 10:04 AM

Brilliant fix !

Weird bug, wasn’t it ?

Wishing you all a very Happy Holiday Season.

Best regards, Fabien.

Technical Support Dec 26, 2008 - 2:49 AM

First of all, we wish you a Happy New Year too!

The . (dot) key located near the N key is the real surprise when the French keyboard layout is on. The WM_KEYDOWN message for this key in the French layout has the VK_DELETE key code in the WPARAM parameter. That is why our grid interpreted Shift+dot combination as cutting to clipboard command. But, if we let the window procedure of edit common control to handle this key combination, then we will know that there is something pressed but not the Shift+Delete. We don’t know the way to detect whether the dot or Delete key is pressed because both have the VK_DELETE key code in the French keyboard layout. We suspect this surprise is brought by some compatibility issue with some old French specific keyboard devices. It looks like the edit common control has some hard coded solution of this situation.

Fabien Masson Dec 23, 2008 - 10:05 AM

Dear All,


No need to speak french and fortunately I have a spare DELL laptop QWERTY keyboard at Office :-)


 


Your first step is correct.


The 2nd and 3rd are incorrect because I was speaking about my french Keyboard, not about yours (by the way, it was normal to get a m and a M).


 


The key I’m talking is the 2nd to the right of Letter N (in same row).


The 2nd key at the right of letter N is composed by a ; without shifting enabled and with a . with shifting enabled.


 


The problem experienced is that it’s the only key we couldn’t get when shifted in SimpleGrids sample !


 


Best regards, Fabien.

Technical Support Dec 23, 2008 - 9:27 AM

We are sorry for the delay with this reply. Very unfortunately we don’t have people in our team who speak French so we need your help with this. What we tried is as follows:

1) Added hte French/France keyboard layout and selected it for the running NOTEPAD.EXE application.

2) Pressed the ; key without shift and we saw a small letter m in the notepad application.

3) Tried to press the ; key with shift and we saw a big letter M in the notepad application.

4) We run the SimpleGrids sample application, selected the Products grid and repeated steps 2 and 3 in cell editors in this grid and result was the same - m and M.

We did this experiment with v.2.84 on Windows Vista. We used simple English keyboard. We didn’t see letter A. Please let us know what we did incorrectly.

Technical Support Dec 23, 2008 - 9:26 AM

We are sorry for the delay with this reply. Very unfortunately we don’t have people in our team who speak French so we need your help with this. What we tried is as follows:

1) Added hte French/France keyboard layout and selected it for the running NOTEPAD.EXE application.

2) Pressed the ; key without shift and we saw a small letter m in the notepad application.

3) Tried to press the ; key with shift and we saw a big letter M in the notepad application.

4) We run the SimpleGrids sample application, selected the Products grid and repeated steps 2 and 3 in cell editors in this grid and result was the same - m and M.

We did this experiment with v.2.84 on Windows Vista. We used simple English keyboard. We didn’t see letter A. Please let us know what we did incorrectly.

Fabien Masson Dec 22, 2008 - 12:16 PM

Dear Support Team,


 


  This uncorrect behavior is also present in Prof UIS 2.84.


 


  Please could you confirm it is a bug ?


  Do you know any work around ?


 


  Best Regards,

Fabien.