INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Jobs

How can I tell if Shift is being held down in a doubleclick handler

How can I tell if Shift is being held down in a doubleclick handler

How can I tell if Shift is being held down in a doubleclick handler

(OP)
I am using Borland C++ Builder 5 on WinXP.

I am detecting whether the user double-clicks in a grid cell on my form and i have handled the appropriate double-click event.

Now i have to make sure and only respond if the user double-clicks whilst holding down the 'shift' key.  How would this be done?

Thanks for any insights.

RE: How can I tell if Shift is being held down in a doubleclick handler

In your TMouseEvent variable type there is a shiftstate field;  it determines if the shift, ctrl and or alt keys are pressed at the time of the event. What I suggest is you trap the mousedown event; if the shift key is pressed, then set a private class boolean variable to true and to false if the shift key is not pressed. Then check that variable's state in your doubleclick handler.

CODE

-----------------------.h file ----------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
  void __fastcall FormMouseDown(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y);
private:    // User declarations
  boolean ShiftKeyPressed;
public:        // User declarations
  __fastcall TForm1(TComponent* Owner);
};
-----------------------.cpp file --------------------------------
void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
  if (Shift && ssShift)
    ShiftKeyPressed = true;
  else
    ShiftKeyPressed = false;
}
 

RE: How can I tell if Shift is being held down in a doubleclick handler

Correction to my previous code; the if statement should read:

CODE

  if (Shift.Contains(ssShift))

RE: How can I tell if Shift is being held down in a doubleclick handler

(OP)
Thank you, the tip worked and was very helpful.

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members!

Resources

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close