WM_NEXTDLGCTL wCtlFocus = wParam; // identifies control for focus fHandle = (BOOL) LOWORD(lParam); // wParam handle flag ParameterswCtlFocusValue of wParam. If the fHandle parameter is TRUE, the wCtlFocus parameter identifies the control that receives the focus. If fHandle is FALSE, wCtlFocus is a flag that indicates whether the next or previous control with the WS_TABSTOP style receives the focus. If wCtlFocus is zero, the next control receives the focus; otherwise, the previous control with the -------------------------------------- WS_TABSTOP style receives the focus. fHandleValue of lParam. Contains a flag that indicates how Windows uses the wCtlFocus parameter. If the fHandle parameter is TRUE, wCtlFocus is a handle associated with the control that receives the focus; otherwise, wCtlFocus is a flag that indicates whether the next or previous control with the WS_TABSTOP style receives the focus.
Form1.KeyPreview := True;procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_Up then Perform(WM_NEXTDLGCTL,1,0) else if Key = VK_DOWN then Perform(WM_NEXTDLGCTL,0,0); end;
wCtlFocus = wParam; // identifies control for focus
fHandle = (BOOL) LOWORD(lParam); // wParam handle flag
ParameterswCtlFocusValue of wParam. If the fHandle parameter is TRUE, the wCtlFocus parameter identifies the control that receives the focus. If
fHandle is FALSE, wCtlFocus is a flag that indicates whether the next or previous control with the WS_TABSTOP style receives the focus. If wCtlFocus is zero, the next control receives the focus; otherwise, the previous control with the
--------------------------------------
WS_TABSTOP style receives the focus. fHandleValue of lParam. Contains a flag that indicates how Windows uses the wCtlFocus parameter. If the fHandle parameter is TRUE, wCtlFocus is a handle associated with the control that receives the focus; otherwise, wCtlFocus is a flag that indicates whether the next or previous control with the WS_TABSTOP style receives the focus.
Shift: TShiftState);
begin
if Key = VK_Up then Perform(WM_NEXTDLGCTL,1,0)
else if Key = VK_DOWN then Perform(WM_NEXTDLGCTL,0,0);
end;