2005. február 16., szerda

Detect whether the default or the keypad Enter key was pressed


Problem/Question/Abstract:

How to detect whether the default or the keypad Enter key was pressed

Answer:

You could put something like this on an Application.OnMessage event, or trap the WM_KEYUP message in your component:

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnMessage := HandleMessage;
end;

procedure TForm1.HandleMessage(var Msg: TMsg; var Handled: Boolean);
begin
  Handled := False;
  if Msg.Message = WM_KEYUP then
  begin
    if Msg.wParam = VK_RETURN then
    begin
      if Msg.LParam and (1 shl 24) > 0 then
        ListBox1.Items.Add('Keypad Return pressed')
      else
        ListBox1.Items.Add('Regular Return pressed')
    end;
  end;
end;

Nincsenek megjegyzések:

Megjegyzés küldése