Bothered me for a while

  spikeychris 20:08 14 Dec 2003

Ok, you press an icon on the toolbar (Internet explorer will do) but you hold down the mouse button and then move the mouse away and release...why does the function not occur? why must you release the button whilst positioned on the icon? This applies with all Windows one click icons?


  Jester2K II 20:11 14 Dec 2003

Because the button looses focus when you remove the mouse from the button. Once you click the action isn't done until you release the button. I supposse its there to give you a way out should you click and then think "Oh no!!".

  VoG II 20:15 14 Dec 2003

"should you click and then think "Oh no!!"."

Which happens rather a lot in my case!

  Pesala 20:15 14 Dec 2003

is used to move buttons on the taskbar too.

  Djohn 20:16 14 Dec 2003

Yep! very useful to remember if you click on delete and didn't mean too! Just move the cursor off the button then let go. I first found this when playing Freecell and then tried it out on other applications.

  Jester2K II 20:19 14 Dec 2003

Good point!!!

  woodchip 20:19 14 Dec 2003

and hear

  spikeychris 20:35 14 Dec 2003

Ahhso. Just ran a search for the first time and it appears it can be changed...might have a bash.

  Jester2K II 20:46 14 Dec 2003



  spikeychris 10:54 15 Dec 2003

2K when I said I'd have a bash...well I'd like to change my mind if thats alright. Looks like it can be done but its a handful.

Trapping the WM_MOUSEACTIVATE message that is send to
the control when the user clicks on it with the mouse.

The format will be lost on here but who the hell cares...?

{ Private declarations }
FOldControlMessageHandler: TWndMethod;
Procedure ControlMessageHandler( Var msg: TMessage );

In implementation:

procedure TForm1.Button2Click(Sender: TObject);
If Assigned( FOldControlMessagehandler ) Then
richedit1.WindowProc := FOldControlMessagehandler
Else Begin
FOldControlMessagehandler := richedit1.WindowProc;
richedit1.WindowProc := ControlMessageHandler;

Procedure TForm1.ControlMessageHandler( Var msg: TMessage );
If (msg.Msg = WM_MOUSEACTIVATE) and (ActiveControl <> richedit1) Then
msg.result := MA_ACTIVATEANDEAT;
FOldControlMessageHAndler( msg );

Thats just a teeny weeny part of it.

  recap 11:15 15 Dec 2003

spikeychris, I think it is a get out clause so to speak as VoG says "should you click and then think "Oh no!!"."

There was a chap that I used to work with that opened up numerous programs by mistake until I told him of this option. Now it take him around 20 sec to open a program because he mulls over whether he wants that particular program or not.

This thread is now locked and can not be replied to.

Elsewhere on IDG sites

Samsung Galaxy S9 review

Wacom Cintiq Pro 24 and 32 review – hands-on

When is the next Apple event?

Qu’est-ce qu’Amazon Prime ?