Thanks to those who responded to this question.  I have tried those that APPEAR
to be the most straightforward.

Greg I have tried the following code, based on your suggestion.

procedure TMainForm.DocEntryTrMesEditKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
 if ssCtrl in Shift then
      begin
       if key = vk_return then showmessage('Control Enter')
       else
       ShowMessage('No Go')
       end;
end;

What I get, though, is a No Go as soon as the Control key is pressed, before I
press Enter.
What have I missed please.

Mark

Greg Nixon wrote:

> // The Datasource is the controls datasource //
> ShortCutCheckKeyDown(Key, Shift, Datasource);
>
> // Add this procedure to a unit in your library //
>
> Procedure ShortCutCheckKeyDown(var Key: Word;
>   var Shift: TShiftState; DbLink: TDatasource);
> begin
>    {If not connected to a database don't try anything
>     or you will get an AV}
>    If DbLink = nil then exit;
>    If ssctrl in Shift then begin
>       If (dblink.state in [dsInsert, dsedit]) then begin
>           If key = vk_return then begin
>             dblink.dataset.post;
>              Key := 0;
>              Shift := [];
>           end;
>       end;
>    end;
> end;
>
> -----Original Message-----
> From: Mark Howard <[EMAIL PROTECTED]>
> To: Multiple recipients of list delphi <[EMAIL PROTECTED]>
> Date: Sunday, 28 March 1999 20:00
> 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: http://www.delphi.org.nz
>
> ---------------------------------------------------------------------------
>     New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
>                   Website: http://www.delphi.org.nz



---------------------------------------------------------------------------
    New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
                  Website: http://www.delphi.org.nz

Reply via email to