Recent

Author Topic: [Solved] How to show or hide the mouse while on other forms in the desktop ?  (Read 3268 times)

loaded

  • Hero Member
  • *****
  • Posts: 824
Hi all

It will be different from the following codes.
How can I hide the mouse as it applies to all programs on the desktop.

Code: Pascal  [Select][+][-]
  1. procedure TForm1.FormMouseEnter(Sender: TObject);
  2. begin
  3.   ShowCursor(False);
  4. end;
  5.  
  6. procedure TForm1.FormMouseLeave(Sender: TObject);
  7. begin
  8.   ShowCursor(True);
  9. end;
  10.  

and

Code: Pascal  [Select][+][-]
  1. Form1.Cursor := crNone; // or   Screen.Cursor:=crNone;
  2.  
« Last Edit: February 17, 2017, 06:33:48 pm by loaded »
Check out  loaded on Strava
https://www.strava.com/athletes/109391137

guest60499

  • Guest
Re: How to show or hide the mouse while on other forms in the desktop ?
« Reply #1 on: February 17, 2017, 04:12:29 pm »
Hello,

This is generally considered to be a poor design choice. If you still wish to do it it is likely you will need to create a way to do it for each platform you are interested in. Under Windows, for example (from here). As you might be able to glean from that solution it's a nonstandard thing to do and each Window expects to be able to set its own cursor style.

jacmoe

  • Full Member
  • ***
  • Posts: 249
    • Jacmoe's Cyber SoapBox
Re: How to show or hide the mouse while on other forms in the desktop ?
« Reply #2 on: February 17, 2017, 05:08:05 pm »
That's a "poor design choice" for desktop applications, but if you are using SDL/GLFW/whatever, then you can do this in a cross platform, consistent way.
Haven't done this (yet) with Lazarus/FPC, but there are several LCL/FPC game libraries around.
more signal - less noise

Thaddy

  • Hero Member
  • *****
  • Posts: 14213
  • Probably until I exterminate Putin.
Re: How to show or hide the mouse while on other forms in the desktop ?
« Reply #3 on: February 17, 2017, 05:16:33 pm »
Well..
Specialize a type, not a var.

RAW

  • Hero Member
  • *****
  • Posts: 868
Re: How to show or hide the mouse while on other forms in the desktop ?
« Reply #4 on: February 17, 2017, 05:30:09 pm »
The easiest way would probably be to build your own fully transparent cursor and load that one.  :)
Like the attached one...

EDIT: exactly like the mouse in the picture...

EDIT2: But I would suggest to use ClipCursor or something like that, because a transparent cursor is still active, so the user can click on whatever...
« Last Edit: February 17, 2017, 06:24:58 pm by RAW »
Windows 7 Pro (x64 Sp1) & Windows XP Pro (x86 Sp3).

loaded

  • Hero Member
  • *****
  • Posts: 824
Re: How to show or hide the mouse while on other forms in the desktop ?
« Reply #5 on: February 17, 2017, 06:33:34 pm »
Greeting Dear RAW and Dear Thaddy and Dear jacmoe and Dear guest
Thank you very much for solving my problem.

Code: Pascal  [Select][+][-]
  1. ....
  2. uses windows,...
  3. ....
  4. SetSystemCursor(Screen.Cursors[crNone], OCR_NORMAL); // hide
  5. ...
  6. SystemParametersInfo(SPI_SETCURSORS, 0, nil, WM_SETTINGCHANGE or SPIF_UPDATEINIFILE); // show
  7. ....
  8.  
« Last Edit: February 17, 2017, 06:49:14 pm by loaded »
Check out  loaded on Strava
https://www.strava.com/athletes/109391137

 

TinyPortal © 2005-2018