Five Win,
We've hit a wall with arrow keys in some part of our POS. The Up and Down arrow keys is not working in a the List Box but in other part of the program like in popup menus it works fine.
Environment: XP, Clipper5.2, comix and FW24
Is there any FW update in the List box that may correct the this behavior?
Or there is anything I can tweak in the list box?
TIA
Arrow keys don't work in ListBox in FW24 and XP
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Antonio,
Thanks for the quick reply.
>Check that the listbox has the focus:
>oListBox:SetFocus()
The list box has focused. But somehow fivewin cannot process the up/down arrow keys.
Here's fragment of the code:
@ 0,0 listbox aObject[AO_JOURNALLIST] fields headers 'Journal xx' alias 'ARRAY' pixel
#define LINES_NONE 0
aObject[AO_JOURNALLIST]:nLineStyle := LINES_NONE
// aObject[AO_JOURNALLIST]:AdjClient()
// Below statement does same as above and handles resize
aObject[AO_JOURNALWINDOW]:SetControl(aObject[AO_JOURNALLIST])
aObject[AO_JOURNALLIST]:bKeyChar := GetWndFrame():bKeyChar
// Apply font and color after journal list box is created 03/17/2004 11:42AM
activate window aObject[AO_JOURNALWINDOW] on init ( oRect:Apply( self ), ClickEvent( aObject[AO_JOURNALLIST], 'Journal' ) ) ;
valid oRect:Save( aObject[AO_JOURNALWINDOW] ) .and. lChildEnd()
// logmsg( 'res.txt','Font ' +'aObject[AO_JOURNALWINDOW]:oFont:hFont' +' handle: ' +char( aObject[AO_JOURNALWINDOW]:oFont:hFont ) )
aObject[AO_JOURNALWINDOW]:Refresh()
aObject[AO_JOURNALWINDOW]:SetFocus() // FW recommendation - jdd
aObject[AO_JOURNALLIST]:bKeyDown:={||msgInfo("KeyCode: "+str(LS_getKeyPressed())+ " lastkey:" +str(lastkey()) )}
Observation:
The b:KeyDown is invoked by FW when Up/down Arrow keys is pressed.
The value of nKeyPressed is 255 in both up/down Arrow keys.
*************************
function LS_getKeyPressed
*************************
local i:=0,nKeyPressed:=0
for i=0 to 255
//if getKeyStat(i)
if getAsyncKey(i)
nKeyPressed=i
exit
endif
next i
return nKeyPressed
***************
Gracias,
Thanks for the quick reply.
>Check that the listbox has the focus:
>oListBox:SetFocus()
The list box has focused. But somehow fivewin cannot process the up/down arrow keys.
Here's fragment of the code:
@ 0,0 listbox aObject[AO_JOURNALLIST] fields headers 'Journal xx' alias 'ARRAY' pixel
#define LINES_NONE 0
aObject[AO_JOURNALLIST]:nLineStyle := LINES_NONE
// aObject[AO_JOURNALLIST]:AdjClient()
// Below statement does same as above and handles resize
aObject[AO_JOURNALWINDOW]:SetControl(aObject[AO_JOURNALLIST])
aObject[AO_JOURNALLIST]:bKeyChar := GetWndFrame():bKeyChar
// Apply font and color after journal list box is created 03/17/2004 11:42AM
activate window aObject[AO_JOURNALWINDOW] on init ( oRect:Apply( self ), ClickEvent( aObject[AO_JOURNALLIST], 'Journal' ) ) ;
valid oRect:Save( aObject[AO_JOURNALWINDOW] ) .and. lChildEnd()
// logmsg( 'res.txt','Font ' +'aObject[AO_JOURNALWINDOW]:oFont:hFont' +' handle: ' +char( aObject[AO_JOURNALWINDOW]:oFont:hFont ) )
aObject[AO_JOURNALWINDOW]:Refresh()
aObject[AO_JOURNALWINDOW]:SetFocus() // FW recommendation - jdd
aObject[AO_JOURNALLIST]:bKeyDown:={||msgInfo("KeyCode: "+str(LS_getKeyPressed())+ " lastkey:" +str(lastkey()) )}
Observation:
The b:KeyDown is invoked by FW when Up/down Arrow keys is pressed.
The value of nKeyPressed is 255 in both up/down Arrow keys.
*************************
function LS_getKeyPressed
*************************
local i:=0,nKeyPressed:=0
for i=0 to 255
//if getKeyStat(i)
if getAsyncKey(i)
nKeyPressed=i
exit
endif
next i
return nKeyPressed
***************
Gracias,
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
>Check the values that you get here:
>aObject[AO_JOURNALLIST]:bKeyDown:={| nKey | MsgInfo( nKey ) }
That helps a lot!
I wonder why it is not mentioned in the documentation that it can receive two parameters (nKey, nFlags)? Or I just missed it?
nFlag value was the essential data in this particular case.
MUCHAS GRACIAS AMIGO !!!!
Jose
>aObject[AO_JOURNALLIST]:bKeyDown:={| nKey | MsgInfo( nKey ) }
That helps a lot!
I wonder why it is not mentioned in the documentation that it can receive two parameters (nKey, nFlags)? Or I just missed it?
nFlag value was the essential data in this particular case.
MUCHAS GRACIAS AMIGO !!!!
Jose
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Jose,
De la documentación de classes de FWH:
<bKeyDown> Whenever the window has focus and a NON-SYSTEM key is pressed (ie the <Alt> key was not pressed in conjunction with this key), this codeblock will be called. When <bKeyDown> is called it receives two parameters: <nKey> The virtual key code of the key. <nFlags> Specifies several internal values like repeat code and scan code. For more information about these values please read a MS-Windows APIdescription about the WM_KEYDOWN message.
De la documentación de classes de FWH:
<bKeyDown> Whenever the window has focus and a NON-SYSTEM key is pressed (ie the <Alt> key was not pressed in conjunction with this key), this codeblock will be called. When <bKeyDown> is called it receives two parameters: <nKey> The virtual key code of the key. <nFlags> Specifies several internal values like repeat code and scan code. For more information about these values please read a MS-Windows APIdescription about the WM_KEYDOWN message.