Single key vs Alt+key hot keys under Delphi 5

Dear anyone,

The application I write often include data input which can be fulfilled
easily with individual key presses (Multiple Choice Questionnaires etc.).
Because of this I regularly display a string grid, inhibit the editor and
trap the key presses, valid key presses can be processed and invalid ones
abandoned (with an irritating beep as required). However on the same form I
often have buttons or labels which make use of hot keys, to access these a
user would press Alt+Key.

Under Delphi 3 this was fine but as I upgrade my existing applications to
Delphi 5 what appears to be a non-compliance problem occurs. Under Delphi 5
where someone used to press Alt+A to initiate an Abandon Button it appears
the single key press A will also initiate it. As my string grid is not in
editor mode it never gets the A. Worse still the user suddenly finds
themselves faced with a 'please confirm to abandon edits' message and if
they happen to be the type of user who always follows any typing with an
enter they may find they've abandoned their edits without realising it. With
labels rather than buttons the focus keeps shifting.

The only solution I have managed so far is to simply remove all the button
and label hot keys, not satisfactory as these are useful, what I want is
buttons and labels which will only use the Alt+Key combination as a hot key
not the individual key.

Any ideas.

Yours in hope and anticipation

Nick Foley