1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
---|
2 | <html>
|
---|
3 | <head>
|
---|
4 | <title>SimpleTimer, ver. 2.0.1</title>
|
---|
5 |
|
---|
6 | <style type='text/css'>
|
---|
7 | /* body { font-family: MS Sans Serif; font-size: 12pt; } */
|
---|
8 | h1 { font: bold 14pt Arial; margin-bottom: 10px; }
|
---|
9 | h2 { font: bold 12pt Arial; margin-bottom: 10px; margin-top: 40px; }
|
---|
10 | td.name { background-color: #00FFCC; width: 120px; font-weight: bold; }
|
---|
11 | td.desc { background-color: #F0F0F0; }
|
---|
12 | td.default { background-color: #F0F0F0; }
|
---|
13 | ul { margin-left: 15px; margin-top: 5px; }
|
---|
14 | li { margin-bottom: 10px; }
|
---|
15 | .declaration { font-weight: bold; }
|
---|
16 | </style>
|
---|
17 |
|
---|
18 | </head>
|
---|
19 |
|
---|
20 |
|
---|
21 | <body topmargin='15' bottommargin='15' leftmargin='10' rightmargin='10'>
|
---|
22 |
|
---|
23 | <a name='Top'><h1>SimpleTimer, ver. 2.0.1</h1>
|
---|
24 |
|
---|
25 |
|
---|
26 | <a href='#Properties'>[Properties]</a> <a href='#Methods'>[Methods]</a> <a href='#Events'>[Events]</a> <a href='#StandAloneMethods'>[Stand-alone Methods]</a>
|
---|
27 | <br>
|
---|
28 | <a href='#Howto'>[How To Use]</a> <a href='#Bugs'>[Known Bugs]</a> <a href='#Comments'>[Comments]</a>
|
---|
29 | <br>
|
---|
30 |
|
---|
31 |
|
---|
32 | <p>
|
---|
33 | SimpleTimer is a timer class. It has the same timer resolution as TTimer, but it is more
|
---|
34 | lightweight because it's derived from TObject in stead of TComponent. Furthermore, the same
|
---|
35 | handle is shared between multiple instances of SimpleTimer. This makes it ideal for developers
|
---|
36 | who need a timer in their own components or applications, but want to keep the resource
|
---|
37 | usage minimal.
|
---|
38 | </p>
|
---|
39 |
|
---|
40 |
|
---|
41 | <a name='Properties'></a><h2>Properties</h2>
|
---|
42 |
|
---|
43 | <table cellpadding='2' cellspacing='2' border='0' width='100%'>
|
---|
44 | <tr>
|
---|
45 | <td class='name' valign='top'>Enabled</td>
|
---|
46 | <td class='desc' valign='top'><span class='declaration'>property Enabled: Boolean;</span><br>
|
---|
47 | Enables (starts) or disables (stops) the timer.</td>
|
---|
48 | <td class='default' valign='top' nowrap>Default False</td>
|
---|
49 | </tr>
|
---|
50 | <tr>
|
---|
51 | <td class='name' valign='top'>Interval</td>
|
---|
52 | <td class='desc' valign='top'><span class='declaration'>property Interval: Cardinal;</span><br>
|
---|
53 | The interval of the timer in millisecs.<br>
|
---|
54 | <b>NOTE:</b> Specifying a value of 0 will cause the timer to stop, but will not set the
|
---|
55 | Enabled property to false.</td>
|
---|
56 | <td class='default' valign='top' nowrap>Default 1000</td>
|
---|
57 | </tr>
|
---|
58 | <tr>
|
---|
59 | <td class='name' valign='top'>AutoDisable</td>
|
---|
60 | <td class='desc' valign='top'><span class='declaration'>property AutoDisable: Boolean;</span><br>
|
---|
61 | If true, the timer will disable itself (Enabled is set to False) immediately after the next
|
---|
62 | time it fires. Useful when you want a one-shot timer.</td>
|
---|
63 | <td class='default' valign='top' nowrap>Default False</td>
|
---|
64 | </tr>
|
---|
65 | </table>
|
---|
66 |
|
---|
67 |
|
---|
68 |
|
---|
69 | <a name='Methods'></a><h2>Methods</h2>
|
---|
70 |
|
---|
71 | <table cellpadding='2' cellspacing='2' border='0' width='100%'>
|
---|
72 | <tr>
|
---|
73 | <td class='name' valign='top'>Create</td>
|
---|
74 | <td class='desc' valign='top'><span class='declaration'>constructor Create;</span><br>
|
---|
75 | Creates a new TSimpleTimer object.</td>
|
---|
76 | </tr>
|
---|
77 | <tr>
|
---|
78 | <td class='name' valign='top'>CreateEx</td>
|
---|
79 | <td class='desc' valign='top'><span class='declaration'>constructor CreateEx(AInterval: Cardinal; AOnTimer: TNotifyEvent);</span><br>
|
---|
80 | Creates a new TSimpleTimer object with the specified Interval property and OnTimer event.</td>
|
---|
81 | </tr>
|
---|
82 | <tr>
|
---|
83 | <td class='name' valign='top'>Destroy</td>
|
---|
84 | <td class='desc' valign='top'><span class='declaration'>destructor Destroy; override;</span><br>
|
---|
85 | Destroys the TSimpleTimer object.</td>
|
---|
86 | </tr>
|
---|
87 | </table>
|
---|
88 |
|
---|
89 |
|
---|
90 |
|
---|
91 | <a name='Events'></a><h2>Events</h2>
|
---|
92 |
|
---|
93 | <table cellpadding='2' cellspacing='2' border='0' width='100%'>
|
---|
94 | <tr>
|
---|
95 | <td class='name' valign='top'>OnTimer</td>
|
---|
96 | <td class='desc' valign='top'><span class='declaration'>property OnTimer: TNotifyEvent;</span><br>
|
---|
97 | Called when the timer fires.</td>
|
---|
98 | </tr>
|
---|
99 | </table>
|
---|
100 |
|
---|
101 |
|
---|
102 |
|
---|
103 | <a name='StandAloneMethods'></a><h2>Stand-alone Methods</h2>
|
---|
104 |
|
---|
105 | <table cellpadding='2' cellspacing='2' border='0' width='100%'>
|
---|
106 | <tr>
|
---|
107 | <td class='name' valign='top'>GetSimpleTimerCount</td>
|
---|
108 | <td class='desc' valign='top'><span class='declaration'>function GetSimpleTimerCount: Cardinal;</span><br>
|
---|
109 | Returns the number of TSimpleTimer objects currently allocated.</td>
|
---|
110 | </tr>
|
---|
111 | <tr>
|
---|
112 | <td class='name' valign='top'>GetSimpleTimerActiveCount</td>
|
---|
113 | <td class='desc' valign='top'><span class='declaration'>function GetSimpleTimerActiveCount: Cardinal;</span><br>
|
---|
114 | Returns the number of TSimpleTimer objects that are currently active (enabled).</td>
|
---|
115 | </tr>
|
---|
116 | </table>
|
---|
117 |
|
---|
118 |
|
---|
119 |
|
---|
120 | <a name='Howto'></a><h2>How To Use</h2>
|
---|
121 |
|
---|
122 | This example creates a SimpleTimer object, initializing Interval to 500 milliseconds and
|
---|
123 | the OnTimer event to TForm1.TimerProc1, then starts the timer:
|
---|
124 | <pre>procedure TForm1.FormCreate(Sender: TObject);
|
---|
125 | begin
|
---|
126 | SimpleTimer1 := TSimpleTimer.Create(500, TimerProc1);
|
---|
127 | SimpleTimer1.Enabled := True;
|
---|
128 | end;</pre>
|
---|
129 |
|
---|
130 | This is what TimerProc1 might look like:
|
---|
131 | <pre>procedure TForm1.TimerProc1(Sender: TObject);
|
---|
132 | begin
|
---|
133 | ListBox1.Items.Add('SimpleTimer1 fired');
|
---|
134 | end;</pre>
|
---|
135 | </li>
|
---|
136 |
|
---|
137 | Remember to destroy the SimpleTimer object when your app. terminates.
|
---|
138 |
|
---|
139 |
|
---|
140 |
|
---|
141 | <a name='Bugs'></a><h2>Known Bugs</h2>
|
---|
142 |
|
---|
143 | <ul>
|
---|
144 | <li>You may experience occasionally that you lose a timer event when you work with
|
---|
145 | small intervals (approx. below 100 ms.). This is normal, and the same thing happens
|
---|
146 | with a TTimer object. If you want precision you need a multimedia timer, not
|
---|
147 | TTimer or TSimpleTimer which use the low-priority WM_TIMER message. WinXP has better
|
---|
148 | handling of timers and will generally lose fewer timer events than other Windows versions.
|
---|
149 | </li>
|
---|
150 | </ul>
|
---|
151 |
|
---|
152 |
|
---|
153 |
|
---|
154 | <a name='Comments'></a><h2>Comments</h2>
|
---|
155 |
|
---|
156 | SimpleTimer is <i>freeware</i>. Feel free to use and improve it,
|
---|
157 | but <i>please include all original files if you redistribute the zip-file</i>.
|
---|
158 | If you have any comments or corrections I would very much like to hear them.
|
---|
159 | </p>
|
---|
160 |
|
---|
161 | <p>
|
---|
162 | Get the latest version from <a href='http://www3.brinkster.com/troels/delphi.asp' target='_blank'>
|
---|
163 | http://www3.brinkster.com/troels/delphi.asp</a>.
|
---|
164 | </p>
|
---|
165 |
|
---|
166 | <p>
|
---|
167 | Troels Jakobsen<br>
|
---|
168 | <a href='mailto:delphiuser@get2net.dk'>delphiuser@get2net.dk</a>
|
---|
169 | </p>
|
---|
170 |
|
---|
171 | </body>
|
---|
172 | </html>
|
---|
173 |
|
---|