Description
Using the Timer objects, you can implement the timer functionality in your scripts. Timer objects serve as wrappers over ordinary Windows timers. Use an individual Timer object for each individual timer in your scripts.
The Timer object periodically executes the script routine specified by the Timer.TimerProc property. The execution period is specified in milliseconds by the Interval property. The Timer object also has the Enabled property, which lets you activate or deactivate the timer when necessary.
To create a new timer in scripts, use the Utils.Timers.Add method. This method creates a new Timer object with desired parameters and returns the created object. A reference to this object is stored to the Timers collection, so there is no need to store that reference to a variable. You can obtain the desired Timer object from this collection using the object’s index or name (each Timer object may have a name that makes getting the timer from the collection easier).
To delete Timer objects, use the Delete or Clear methods of the Timers collection.
Members
Remarks
The timer cannot be edited, deleted or disabled inside the timer handler routine. If you try to do this, the TestComplete engine will freeze or even crash. This happens due to restrictions of the internal Timer procedure. These restrictions cannot be removed.
To ensure the correct behavior of the timer, add the following check inside the timer handler routine:
JavaScript, JScript
if (!TimerRoutine)
{
timerRoutine = true;
}
Python
if not TimerRoutine:
TimerRoutine = True
VBScript
If Not TimerRoutine Then
TimerRoutine = True
End If
DelphiScript
if not TimerRoutine then
begin
TimerRoutine := True;
end;
C++Script, C#Script
if (!TimerRoutine)
{
timerRoutine = true;
}
Example
The code below demonstrates how you can add a new Timer object to the Timers collection and modify the timer’s properties.
JavaScript, JScript
function TestProc()
{
// Adds a new object to the Timers collection
Timer1 = Utils.Timers.Add(10000, "Unit1.TimerRoutine", true);
// Modifies the timer’s properties
Timer1.Name = "MyTimer";
Timer1.Interval = 20000;
Timer1.TimerProc = "Timers.NewTimerRoutine";
}
function TimerRoutine()
{
// Specify your code here.
// This routine will be executed after the specified timeout expires.
}
function NewTimerRoutine()
{
// Specify your code here.
// This is a new timer routine.
}
Python
def TestProc():
# Adds a new object to the Timers collection
Timer1 = Utils.Timers.Add(10000, "Unit1.TimerRoutine", True)
# Modifies the timer's properties
Timer1.Name = "MyTimer"
Timer1.Interval = 20000
Timer1.TimerProc = "Timers.NewTimerRoutine"
def TimerRoutine():
# Specify your code here.
# This routine will be executed after the specified timeout expires.
pass
def NewTimerRoutine():
# Specify your code here.
# This is a new timer routine.
pass
VBScript
Sub TestProc
' Adds a new object to the Timers collection
Set Timer1 = Utils.Timers.Add(10000, "Unit1.TimerRoutine", True)
' Modifies the timer’s properties
Timer1.Name = "MyTimer"
Timer1.Interval = 20000
Timer1.TimerProc = "Timers.NewTimerRoutine"
End Sub
Sub TimerRoutine
' Specify your code here.
' This routine will be executed after the specified timeout expires.
End Sub
Sub NewTimerRoutine
' Specify your code here.
' This is a new timer routine.
End Sub
DelphiScript
procedure TestProc;
begin
// Adds a new object to the Timers collection
Timer1 := Utils.Timers.Add(10000, 'Unit1.TimerRoutine', true);
// Modifies the timer’s properties
Timer1.Name := 'MyTimer';
Timer1.Interval := 20000;
Timer1.TimerProc := 'Timers.NewTimerRoutine';
end;
procedure TimerRoutine;
begin
// Specify your code here.
// This routine will be executed after the specified timeout expires.
end;
procedure NewTimerRoutine;
begin
// Specify your code here.
// This is a new timer routine.
end;
C++Script, C#Script
function TestProc()
{
// Adds a new object to the Timers collection
Timer1 = Utils["Timers"]["Add"](10000, "Unit1.TimerRoutine", true);
// Modifies the timer’s properties
Timer1["Name"] = "MyTimer";
Timer1["Interval"] = 20000;
Timer1["TimerProc"] = "Timers.NewTimerRoutine";
}
function TimerRoutine()
{
// Specify your code here.
// This routine will be executed after the specified timeout expires.
}
function NewTimerRoutine()
{
// Specify your code here.
// This is a new timer routine.
}
See Also
Using Timers
Timers Object
Add Method
Clear Method
Delete Method
Items Property

Properties