You are probably getting hung up on the VK value for keys. For some reason I
have found that the following wont work:
  if (Key=VK_DELETE) and (Shift=[ssCtrl]) then
I have had to parse for the keys ascii value, rather than the VK_ESCAPE or
whatever; maybe someone would like to comment here??
So, ascii values for ctrl/Enter:
  VK_CONTROL = 17;
  VK_RETURN = 13; {same as ENTER}
Anyway, here goes............
Go to your Object inspector, keypreview=true.
Object inspector, mainform, events, double-click Onkeypress.
It will create a proc, which you can enter similar to I have below:
procedure TCamForm.FormKeyPress(Sender: TObject; var Key: Char);
  if (Key = #27) then Escape := true;

OR you could do a combo key like follows (define keyfound as a global
procedure TCamForm.FormKeyPress(Sender: TObject; var Key: Char);
{NB a case expression would be better if u were only gonna use ascii values}
if keyfound=#9 {tab}
and key=#101 then
ShowMessage('Haha, Tab was first')
if keyfound=#9
and key='e'{instead of writing ascii}
ShowMessage('Haha, Tab was LAST');

Typically, for menu Ctrl-X for exit, once you have set up mainform for
key-preview then you just double click your menu component, select the menu
item eg Exit, Ctrl-X in the object inspector shortcut for that particular
menu item.
> -----Original Message-----
> Behalf Of Mark Howard
> Sent: Sunday, 28 March 1999 15:45
> To: Multiple recipients of list delphi
> Subject: [DUG]: Trapping and using a CTRL-ENTER
> Hi guys
> A simple question.
> In variety of controls (StringGrid, ComboBox, EditBox) I want to be able
> to detect if the user has pressed a CTRL-ENTER combination.
> If he has, I want to invoke the Save procedure. If  CTRL-ENTER is NOT
> pressed, the control should just handle the key-press as it usually
> does.
> This is to save the user having to hunt for the mouse and the SAVE
> button, if they prefer.
> Can someone please give me a short example of how you would detect and
> use this, I can't find any examples of the use of OnKeyDown in the
> documentation.
> eg (in pseudo code) an OnKeyDown event:
> if (Key = Chr(13) and ShiftState  = ssCtrl) then SaveStuff
> In a similar vein - is it possible to detect the pressing of TAB before
> it does what it does, ie moves focus to the next control?
> ------------------------------------------------------------------
> ---------
>     New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
>                   Website:

    New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]

Reply via email to