Mega Code Archive

 
Categories / Delphi / Hardware
 

Mouse cursor hourglassnormal changer unit

Title: Mouse cursor hourglass/normal changer unit Question: Howto change the mousecursor into a hourglass/normal. Answer: unit waitcursor; { WaitCursor - Copyright (c) 2001 by E.J.Molendijk A mousecursor hourglass/normal changer tool. Supports layered requests. WCursor.SetWait = mouse cursor as Hourglass WCursor.SetWaitSQL = mouse cursor as SQL Hourglass WCursor.SetNormal = mouse cursor as normal example: WCursor.setWait; try DoSometingVerySlow; finally WCursor.setNormal; end; } interface type TWaitCursor = class private FCursor : integer; FCnt : integer; public constructor Create; destructor Destroy; override; procedure SetCursor(Index: integer); procedure SetWait; procedure SetWaitSQL; procedure SetNormal; end; var WCursor : TWaitCursor; implementation uses Forms, Controls; constructor TWaitCursor.Create; begin inherited; // depth is zero FCnt := 0; // remember default cursor FCursor := Screen.Cursor; end; destructor TWaitCursor.Destroy; begin // Reset to default cursor Screen.Cursor := FCursor; inherited; end; procedure TWaitCursor.SetCursor(Index: integer); begin // select cursor Screen.Cursor := Index; end; procedure TWaitCursor.SetNormal; begin // decrease depth if FCnt0 then Dec(FCnt); // if we reach depth 0 we restore default cursor if FCnt=0 then SetCursor(FCursor); end; procedure TWaitCursor.SetWait; begin // increase depth Inc(FCnt); // select wait cursor SetCursor(crHourglass); end; procedure TWaitCursor.SetWaitSQL; begin // increase depth Inc(FCnt); // select wait cursor SetCursor(crSQLWait); end; initialization WCursor := TWaitCursor.Create; finalization WCursor.Free; end.