* * *

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

loaded

  • Jr. Member
  • **
  • Posts: 71
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 »
Installing the spelling, google translate is used :)

R0b0t1

  • Full Member
  • ***
  • Posts: 128
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

  • Sr. Member
  • ****
  • Posts: 259
    • 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: 4519
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..
"Logically, no number of positive outcomes at the level of experimental testing can confirm a scientific theory, but a single counterexample is logically decisive."

RAW

  • Hero Member
  • *****
  • Posts: 545
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) And Windows XP Pro (x86 Sp3) - LAZARUS 1.8.0RC4 FPC 3.0.4

loaded

  • Jr. Member
  • **
  • Posts: 71
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 R0b0t1
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 »
Installing the spelling, google translate is used :)

 

Recent

Get Lazarus at SourceForge.net. Fast, secure and Free Open Source software downloads Open Hub project report for Lazarus