This most convenient utility contains two most powerful features, each of which blows up the usual use of the TestComplete.
The first feature gives you the ability to change Local Variables on-the-fly during the script execution. This is a unique approach extending the flexibility of using the standard load-test scripts. Just open a TestComplete project (*.mds) in My@LocVarPanel and you will see all your Local Variables sorted by types: Boolean, String, Integer. My@LocVarPanel will automatically represent Boolean variables as check boxes. String variables will be shown as edit boxed and Integer ones as SpinEdit controls. Now try to change any variable using My@LocVarPanel and notice how it immediately changes in TestComplete in its Local Variables table. What is more, you can change your Local Variables without stopping the script!

Since TestComplete may steal focus from the tool during a script execution, changing Local Variables is possible either when TestComplete is waiting for an action (when it executes the delay command) or when your script execution is paused. You can use a special key combination (by default, the TestComplete shortcut for this purpose is Shift+F11) to pause your script, then change your Local Variables and finally, continue the script execution.
Note that changing Local Variables will not automatically change the way how your load test scripts are executed. You need to add some code that will re-read Local Variables similar to the following:
for I := 0 to 10000 do begin //do some thing here Delay(10000); // optional delay for changing local variables MyVariableParam := Options.LocalVars.MyVariableLocVar; // rereading of a variable value //using MyVariableParam like a new value end;
The second great advantage of the tool is the ability to create visual controls that you can use to audit your script execution and specify its further direction. These controls are created right aware from your script code, since My@LocVarPanel is compiled as an Open Application (please refer to the TestComplete documentation for details). The tool provides special functions for this purpose whose parameters determine what control to create. For example, the code line creating a SpinEdit control looks like this:
_FromTC_CreateSpinEdit('SpinEdit1', 'Hint for SpinEdit1’, 44, 140, 0, 100, 45);
where parameters are:
'SpinEdit1' – the name of the control to create that you can use to access it from the script
'Hint for SpinEdit1’ – the hint for the control
44, 140 – the control’s coordinates (x,y)
0, 100 – the minimum and maximum values
45 – the current value
So what will it give us?
Just anything you want! You can now create very controllable load test script with a great visual control panel showing you what is going and which what it is going. You can set and read your visual control values from your scripts in the natural way.
Don’t believe us? Intrigued how it is possible? Lets us show how My@LocVarPanel is used by test programmers and test-drivers that works with our tool.

This incredible control panel is used for the automated testing of a very special software package build for checking physical values from some equipment in a scientific corporation.

This panel is used to control and represent the state of load test execution in one good known video editing system.
As we already mentioned, My@LocVarPanel is compiled as an Open Application (see the TestComplete documentation). This allows you to use the TestComplete’s Object Browser to investigate its internals:

As you will see, there is a number of wrapper functions included specially for using them from within TestComplete script.
To illustrate the process in detail, here is an example of creating a Memo control and adding two text lines to it. You can use this approach for adding logging functionality to your control panel. This is very handy to check the test execution results without stopping your tests.
Delphi script:
Procedure Start;
var
LocVarProc, wLocVar: integer;
begin
LocVarProc := Sys.WaitProcess('LocVarPanel',3000);
if LocVarProc.Exists then
begin
wLocVar := LocVarProc.MainFrm;
wLocVar.Activate;
wLocVar._FromTC_ClearControlForm;
wLocVar. _FromTC_CreateMemo('Memo1', 'Hint for Memo1', '1-st Line of the Memo', 12, 10, 164, 302);
wLocVar.Memo1.Lines.add('2-nd Line of the Memo');
wLocVar.Memo1.Lines.add('3-rd Line of the Memo');
end;
end;
To find some additional sample code, please look at the examples installed by our setup.