-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathAutoHourGlass.pas
More file actions
63 lines (48 loc) · 999 Bytes
/
Copy pathAutoHourGlass.pas
File metadata and controls
63 lines (48 loc) · 999 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Unit AutoHourGlass;
{ Copyright: Pawel Piotrowski; MaxLogic; www.maxlogic.eu
License: free to use; no warranty at all; use as is
How to use:
var
Glass : IInterface;
begin
Glass := AutoHourGlass.MakeCHG;
....
end;
thats alll
}
Interface
Uses
winApi.Windows, system.Classes, system.SysUtils, vcl.Forms, vcl.Controls, vcl.Graphics;
Type
TAutoHourGlass = Class(TInterfacedObject)
Private
fCursor: TCursor;
fCaptured: Boolean;
Public
Constructor Create;
Destructor Destroy; Override;
End;
Function MakeCHG: IInterface;
Implementation
Function MakeCHG: IInterface;
Begin
Result := TAutoHourGlass.Create;
End;
{ TAutoHourGlass }
Constructor TAutoHourGlass.Create;
Begin
Inherited;
If screen.cursor <> crHourGlass Then
Begin
fCaptured := True;
fCursor := screen.cursor;
screen.cursor := crHourGlass;
End;
End;
Destructor TAutoHourGlass.Destroy;
Begin
If fCaptured Then
screen.cursor := fCursor;
Inherited;
End;
End.