DelphiListView Object
Description
A Delphi list-view control.
IMPORTANT
The Delphi object is learned for the following Delphi controls: TListView.
You can check both the content and properties of a DelphiListView object. For example, you can check that a specified value is displayed in a certain cell. You can also check that the object has the expected number of rows and columns.
When you insert a standard checkpoint on a DelphiListView object, the Define Row Range dialog box opens, enabling you to select the range of rows you want to include in your checkpoint. After you define the row range, the Table Checkpoint Properties dialog box opens, enabling you to check the content and properties of your DelphiListView object (instead of just the properties, as in standard checkpoints).
Operations
The sections below list the built-in methods and properties that you can use as operations for the DelphiListView object.
Note: You can also view a list and descriptions of the DelphiListView description properties, for use in object repository descriptions, programmatic descriptions, checkpoint and output value steps, and as argument values for the GetTOProperty and GetROProperty methods.
Methods
Activate | Activates (double-clicks) the specified item in the object's list. |
CaptureBitmap | Saves a screen capture of the object as a .png or .bmp image using the specified file name. |
Check | Checks whether the actual value of an item matches the expected value. |
CheckItemProperty | Checks whether the specified item property achieves the specified value within the specified timeout. |
CheckProperty | Checks whether the actual value of the specified object property matches the specified expected value within the specified timeout. |
ChildObjects | Returns the collection of child objects contained within the object. |
GetAllROProperties | Returns the collection of properties and current values from the object in the application. |
Click | Clicks the object. |
ColumnCount | Returns the number of columns in the (report-style) list-view object. |
DblClick | Double-clicks the object. |
Deselect | Deselects an item in the list. |
Drag | Performs the 'drag' part of a drag and drop operation. |
DragItem | Performs the 'drag' part of a drag and drop operation. |
Drop | Performs the 'drop' part of a drag and drop operation. |
DropOnItem | Performs the 'drop' part of a drag and drop operation. |
EditLabel | Activates the edit mode for the list's label to enable renaming. |
ExtendSelect | Selects an additional item from the multi-selection list. |
GetCheckMarks | Retrieves the number and the value of items marked as checked. |
GetColumnHeader | Returns the text header of the specified (report-style) list-view column. |
GetContent | Returns a string containing all of the items in the list. |
GetItem | Returns the value of the item specified by the index. |
GetItemProperty | Returns the current value of a property for an item in the list. |
GetItemsCount | Returns the number of items in the list. |
GetROProperty | Returns the current value of the description property from the object in the application. |
GetSelection | Returns all of the selected items in the list. |
GetSubItem | Returns the text value of the report-style list-view subitem. |
GetTextLocation | Checks whether the specified text string is contained in the specified window area. |
GetTOProperties | Returns the collection of properties and values used to identify the object. |
GetTOProperty | Returns the value of the specified description property from the test object description. |
Highlight | Highlights the object in the application. |
GetVisibleText | Returns the text from the specified area. |
MouseMove | Moves the mouse pointer to the designated position inside the object. |
Output | Retrieves the current value of an item and stores it in a specified location. |
RefreshObject | Instructs OpenText Functional Testing to re-identify the object in the application the next time a step refers to this object. |
Select | Selects an item from the list. |
SelectRange | Selects all list items between (and including) the two specified items. |
SetItemState | Sets the state of the check box icon of the specified item in the list. |
SetROProperty | Sets the value of the specified property of the object in the application. |
SetTOProperty | Sets the value of the specified description property in the test object description. |
ToString | Returns a string that represents the test object. |
Type | Types the specified string in the object. |
WaitItemProperty | Waits until the specified item property achieves the specified value or exceeds the specified timeout before continuing to the next step. |
WaitProperty | Waits until the specified object property achieves the specified value or exceeds the specified timeout before continuing to the next step. |
Properties
Exist | Checks whether the object currently exists in the open application. |
Activate Method
Description
Activates (double-clicks) the specified item in the object's list.
Syntax
object.Activate Item, [BUTTON]
Arguments
Parameter | Description |
---|---|
Item |
Required. A Variant. The item to select from the list-view control. The item value (with quotes) or numeric index (without quotes) can denote the item. The first item in a list-view control is numbered 0. |
BUTTON |
Optional. A predefined constant or number. The mouse button used to activate the list-view control. Default value = micLeftBtn |
Return Type
None
Example
'The following example uses the Activate method to activate an item in a list view. DelphiWindow("Form1_2").DelphiListView("ListView1").Activate "Item2"
CheckItemProperty Method
Description
Checks whether the specified item property achieves the specified value within the specified timeout.
Syntax
object.CheckItemProperty (Item, PropertyName, PropertyValue, [TimeOut])
Arguments
Parameter | Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Item |
Required. A Variant. The item name (with quotes) or numeric index (without quotes) can denote the item. The first item in a list is numbered 0. | ||||||||||
PropertyName |
Required. A String value. The name of the item property whose value is checked. The following properties are supported:
| ||||||||||
PropertyValue |
Required. A Variant. The expected value against which the actual item property value should be checked. You can either use a simple value or you can use a comparison object together with the value to perform more complex comparisons. | ||||||||||
TimeOut |
Optional. An unsigned long integer value. The time, in milliseconds, within which OpenText Functional Testing should check whether the actual value of the item property matches the specified expected value. If no value is specified, OpenText Functional Testing uses the time set in the Object Synchronization Timeout option in the Run pane of the Test Settings dialog box. |
Return Type
A Boolean value.
Returns TRUE if the item property achieves the value, and FALSE if the timeout is reached before the item property achieves the value.
A TRUE return value reports a Passed step to the run results; a FALSE return value reports a Failed step to the run results.
IMPORTANT
If the expected and actual values do not match, an error is reported and the test or component status is changed to failed.
Note: For test run synchronization, or whenever you do not want to fail the test if the expected and actual values do not match, use the WaitItemProperty method.
You can also use comparison objects to perform more complex value comparisons. For example, you can instruct OpenText Functional Testing to check whether a specific item property value is greater than the specified value.
An example of the syntax required when using a comparison object is: Object.CheckItemProperty 2, "text", micNotEqual("John")"
The following comparison objects can be used:
- micGreaterThan: Greater than; Specifies that OpenText Functional Testing checks whether the item property value is greater than the specified value.
- micLessThan: Less than; Specifies that OpenText Functional Testing checks whether the item property value is less than the specified value.
- micGreaterThanOrEqual: Greater than or equal to; Specifies that OpenText Functional Testing checks whether the item property value is greater than or equal to the specified value.
- micLessThanOrEqual: Less than or equal to; Specifies that OpenText Functional Testing checks whether the item property value is less than or equal to the specified value.
- micNotEqual: Not equal to; Specifies that OpenText Functional Testing checks whether the item property value is not equal to the specified value.
- micRegExpMatch: Regular expression; Specifies that OpenText Functional Testing checks whether the item property value achieves a regular expression match with the specified value. Regular expressions are case-sensitive and must match exactly. For example, 'E.*h' matches 'Earth' but not 'The Earth' or 'earth'.
When the types of the expected value and actual value do not match, the comparisons are performed as follows (in this order):
- Empty values: Empty values may be an uninitialized variable or field (which returns TRUE for the IsNull function in VBscript) or initialized to an empty value (which returns TRUE for the IsEmpty function is VBscript). When trying to compare two arguments when at least one is an empty value, the comparison assumes equality for two uninitialized arguments and for two empty arguments. Any other combination is considered unequal.
For example:
dim vEmpty
Object.CheckItemProperty 2, “text”,micNotEqual(vEmpty)
does not wait for the timeout (because the 'text' property value is an empty string and the argument passed to micNotEqual is an empty value, and so micNotEqual finds them not equal and returns TRUE). - String values: When trying to compare a string value with non-string value, the string value is converted to the non-string type and then compared. If the string value cannot be converted to the non-string type, the comparison assumes the values are not equal.
For example:
Object.CheckItemProperty 2, "text", micGreaterThan("8")"
does not wait for the timeout if the 'text' property value is '16' (because micGreaterThan finds 16 to be greater than 8 and returns TRUE), but waits if the 'text' property value is 'a' (because 'a' cannot be converted to a number). - Boolean values: When trying to compare a Boolean value with non-boolean value, the non-boolean value is converted to a boolean value and then compared. The conversion method assumes that any integer value other than '0' is TRUE, and that '0' alone is FALSE. If the conversion fails to produce a boolean value (for example, if the value is 'abc'), the comparison result will be FALSE (note that for the WaitProperty method this result would instruct OpenText Functional Testing to keep waiting). If the conversion succeeds, the method compares the two boolean values according to the comparison logic.
- Other value types: When other value types do not match, they are compared under the assumption that different types are not equal (nor greater than or less than each other).
Example
'The following example uses the CheckItemProperty method to verify that 'all the items in a Listview are selected. 'Loop over all items numItems = listViewTO.GetItemsCount For curIndex = 0 To numItems - 1 listViewTO.CheckItemProperty curIndex, "selected", True, 0 Next
Click Method
Description
Clicks the object.
Syntax
object.Click [X], [Y], [BUTTON]
Arguments
Parameter | Description |
---|---|
X |
Optional. An integer value. The x-coordinate of the click. Note that the specified coordinates are relative to the upper left corner of the object. The default value is the center of the object. Default value = -9999 |
Y |
Optional. An integer value. The y-coordinate of the click. Note that the specified coordinates are relative to the upper left corner of the object. The default value is the center of the object. Tip: You can enter micNoCoordinate (-9999) for the x and y argument values if you want to enter a value for the button argument without specifying x- and y- coordinates for the click. micNoCoordinate indicates the center of the object. Default value = -9999 |
BUTTON |
Optional. A predefined constant or number. The mouse button used to click the object. Default value = micLeftBtn |
Return Type
None
Example
'The following example sets the 'Accept' radio button to 'True'. Afterwards, 'the 'enabled' property of the 'Next' button is checked with the use of GetROProperty. 'If it is indeed enabled, it is clicked. Otherwise, an error is reported 'to the run results, and the 'Cancel' button is clicked. 'Set the radio button DelphiWindow("Ex_Dialog").DelphiRadioButton("Accept").Set 'Verify that the 'Next' button is enabled and click the enabled button bEnabled = DelphiWindow("Ex_Dialog").DelphiButton("Next").GetROProperty("enabled") If True = bEnabled Then DelphiWindow("Ex_Dialog").DelphiButton("Next").Click Else Reporter.ReportEvent micFail, "RadioButton_Set_and_Button_Click_Example", "'Next' button is not enabled even though 'Accept' radio button was set to 'True'" DelphiWindow("Ex_Dialog").DelphiButton("Cancel").Click End If
ColumnCount Method
Description
Returns the number of columns in the (report-style) list-view object.
Syntax
object.ColumnCount
Return Type
A long integer value.
IMPORTANT
Only the visible columns are counted.
Example
'The following example uses the GetColumnHeader method to identify the ''Type' column in the folder. It then uses the GetItemsCount and GetSubItem methods 'to determine if the file is of the specified type. If it is, it uses the DragItem 'and DropOnItem methods to move the file to the sub-folder. 'Get the index of the 'type' column numColumns = listViewTO.ColumnCount For curIndex = 0 To numColumns - 1 curColumnName = listViewTO.GetColumnHeader(curIndex) If curColumnName = "type" Then typeColumnIndex = curIndex End If Next 'Loop over all files numItems = listViewTO.GetItemsCount For curIndex = 0 To numItems - 1 curFileType = listViewTO.GetSubItem(curIndex, typeColumnIndex) If curFileType = "Application Extension" Then listViewTO.DragItem curIndex, micLeftBtn listViewTO.DropOnItem subFolder, micLeftBtn End If Next
DblClick Method
Description
Double-clicks the object.
Syntax
object.DblClick X, Y, [BUTTON]
Arguments
Parameter | Description |
---|---|
X |
Required. An integer value. The x-coordinate of the double-click. Note that the specified coordinates are relative to the upper left corner of the object. |
Y |
Required. An integer value. The y-coordinate of the double-click. Note that the specified coordinates are relative to the upper left corner of the object. |
BUTTON |
Optional. A predefined constant or number. The mouse button used to double-click the object. Default value = micLeftBtn |
Return Type
None
Example
'The following example uses the GetTextLocatation method to locate a button which 'is not recognized as a separate object, and then double clicks it. 'Find the text bFound = windowTO.GetTextLocation(iconLabel, left_x, top_y, right_x, bottom_y, True) If bFound = False Then DblClickUnrecognizedIcon = False Exit Function End If 'Double click the center of the button center_x = right_x - left_x center_y = bottom_y - top_y windowTO.DblClick center_x, center_y 'Set the return value DoubleClick_Example = True
Deselect Method
Description
Deselects an item in the list.
Syntax
object.Deselect Item
Arguments
Parameter | Description |
---|---|
Item |
Required. A Variant. The item to select from the list-view control. The item value (with quotes) or numeric index (without quotes) can denote the item. The first item in a list-view control is numbered 0. |
Return Type
None
Example
'The following example uses the Deselect method to deselect all the executable 'files currently selected in a folder ListView. 'Get the index of the 'type' column numColumns = listViewTO.ColumnCount For curIndex = 0 To numColumns - 1 curColumnName = listViewTO.GetColumnHeader(curIndex) If curColumnName = "type" Then typeColumnIndex = curIndex End If Next 'Loop over all files numItems = listViewTO.GetItemsCount For curIndex = 0 To numItems - 1 curFileType = listViewTO.GetSubItem(curIndex, typeColumnIndex) If curFileType = "Application" Then listViewTO.Deselect curIndex End If Next
Drag Method
Description
Performs the 'drag' part of a drag and drop operation.
Syntax
object.Drag X, Y, [BUTTON]
Arguments
Parameter | Description |
---|---|
X |
Required. An integer value. The x-coordinate within the window from which the object is dragged. Note that the specified coordinates are relative to the upper left corner of the object. |
Y |
Required. An integer value. The y-coordinate within the window from which the object is dragged. Note that the specified coordinates are relative to the upper left corner of the object. |
BUTTON |
Optional. A predefined constant or number. The mouse button used to drag the object. Default value = micLeftBtn |
Return Type
None
Example
'The following example uses the Drag and Drop methods to drag an item from its 'current location and drop it in a folder. 'Find the coordinate of the item sourceListView.GetTextLocation itemLabel, source_left_x, source_top_y, source_right_x, source_bottom_y, True source_center_x = (source_right_x + source_left_x) / 2 source_center_y = (source_bottom_y + source_top_y) / 2 'Find the coordinates of the folder item in target listview targetListView.GetTextLocation folderLabel, target_left_x, target_top_y, target_right_x, target_bottom_y, True target_center_x = (target_right_x + target_left_x) / 2 target_center_y = (target_bottom_y + target_top_y) / 2 'Execute the drag and drop operation sourceListView.Drag source_center_x, source_center_y, micLeftBtn targetListView.Drop target_center_x, target_center_y, micLeftBtn
DragItem Method
Description
Performs the 'drag' part of a drag and drop operation.
Syntax
object.DragItem (Item, [BUTTON])
Arguments
Parameter | Description |
---|---|
Item |
Required. A Variant. The item to drag. The logical name (with quotes) or numeric index (without quotes) can denote the item. The first item in a list-view control is numbered 0. |
BUTTON |
Optional. A predefined constant or number. The mouse button used to click the object. Note: The same button must be used in both the DragItem and DropOnItem parts of the drag and drop operation. Default value = micLeftBtn |
Return Type
None.
IMPORTANT
A DragItem statement must be followed by a Drop or DropOnItem statement.
Example
'The following example uses the GetColumnHeader method to identify the ''Type' column in the folder. It then uses the GetItemsCount and GetSubItem methods 'to determine if the file is of the specified type. If it is, it uses the DragItem 'and DropOnItem methods to move the file to the sub-folder. 'Get the index of the 'type' column numColumns = listViewTO.ColumnCount For curIndex = 0 To numColumns - 1 curColumnName = listViewTO.GetColumnHeader(curIndex) If curColumnName = "type" Then typeColumnIndex = curIndex End If Next 'Loop over all files numItems = listViewTO.GetItemsCount For curIndex = 0 To numItems - 1 curFileType = listViewTO.GetSubItem(curIndex, typeColumnIndex) If curFileType = "Application Extension" Then listViewTO.DragItem curIndex, micLeftBtn listViewTO.DropOnItem subFolder, micLeftBtn End If Next
Drop Method
Description
Performs the 'drop' part of a drag and drop operation.
Syntax
object.Drop X, Y, [BUTTON]
Arguments
Parameter | Description |
---|---|
X |
Required. An integer value. The x-coordinate of the object onto which the object is dropped. Note that the specified coordinates are relative to the upper left corner of the object. |
Y |
Required. An integer value. The y-coordinate of the object onto which the object is dropped. Note that the specified coordinates are relative to the upper left corner of the object. |
BUTTON |
Optional. A predefined constant or number. The mouse button that is released to drop the object. Default value = micLeftBtn |
Return Type
None
Example
'The following example uses the Drag and Drop methods to drag an item from its 'current location and drop it in a folder. 'Find the coordinate of the item sourceListView.GetTextLocation itemLabel, source_left_x, source_top_y, source_right_x, source_bottom_y, True source_center_x = (source_right_x + source_left_x) / 2 source_center_y = (source_bottom_y + source_top_y) / 2 'Find the coordinates of the folder item in target listview targetListView.GetTextLocation folderLabel, target_left_x, target_top_y, target_right_x, target_bottom_y, True target_center_x = (target_right_x + target_left_x) / 2 target_center_y = (target_bottom_y + target_top_y) / 2 'Execute the drag and drop operation sourceListView.Drag source_center_x, source_center_y, micLeftBtn targetListView.Drop target_center_x, target_center_y, micLeftBtn
DropOnItem Method
Description
Performs the 'drop' part of a drag and drop operation.
Syntax
object.DropOnItem (TargetItem, [BUTTON])
Arguments
Parameter | Description |
---|---|
TargetItem |
Required. A Variant. The item on which to drop the dragged item. The logical name (with quotes) or numeric index (without quotes) can denote the item. The first item in a list-view control is numbered 0. |
BUTTON |
Optional. A predefined constant or number. The mouse button used to click the object. Note: The same button must be used in both the DragItem and DropOnItem parts of the drag and drop operation. Default value = micLeftBtn |
Return Type
None.
IMPORTANT
A DropOnItem statement must be preceded by a Drag or DragItem statement.
Example
'The following example uses the GetColumnHeader method to identify the ''Type' column in the folder. It then uses the GetItemsCount and GetSubItem methods 'to determine if the file is of the specified type. If it is, it uses the DragItem 'and DropOnItem methods to move the file to the sub-folder. 'Get the index of the 'type' column numColumns = listViewTO.ColumnCount For curIndex = 0 To numColumns - 1 curColumnName = listViewTO.GetColumnHeader(curIndex) If curColumnName = "type" Then typeColumnIndex = curIndex End If Next 'Loop over all files numItems = listViewTO.GetItemsCount For curIndex = 0 To numItems - 1 curFileType = listViewTO.GetSubItem(curIndex, typeColumnIndex) If curFileType = "Application Extension" Then listViewTO.DragItem curIndex, micLeftBtn listViewTO.DropOnItem subFolder, micLeftBtn End If Next
EditLabel Method
Description
Activates the edit mode for the list's label to enable renaming.
Syntax
object.EditLabel Item
Arguments
Parameter | Description |
---|---|
Item |
Required. A Variant. The item to select from the list-view control. The item value (with quotes) or numeric index (without quotes) can denote the item. The first item in a list-view control is numbered 0. |
Return Type
None
IMPORTANT
This method only enables the item for renaming. To actually rename the item, you must set its value using the DelphiEdit or DelphiEditor test object, together with an applicable method, such as Set or SetCaretPos+Type.
Example
'The following example uses the GetSelection method to retrieve the items 'in the specified ListView. It then enables the items for editing using the 'EditLabel method. Selected = listViewTO.GetSelection aSelected = Split(Selected, vbLf) 'Iterate over the selected items For curArrayIndex = 0 To UBound(aSelected) 'Enable the label for editing curItem = aSelected(curArrayIndex) listViewTO.EditLabel curItem Next
ExtendSelect Method
Description
Selects an additional item from the multi-selection list.
Syntax
object.ExtendSelect Item
Arguments
Parameter | Description |
---|---|
Item |
Required. A Variant. The item to select from the list. The item value (with quotes) or numeric index (without quotes) can denote the item. The first item in a list is numbered 0. |
Return Type
None
Example
'The following example uses the GetItemProperty method to retrieve the 'text of an item in the List control. It then determines if the item text begins 'with the specified letter. If it does, then if no items have been selected yet 'the item is selected using the Select method. If items have already been selected 'the ExtendSelect method is used. content = listViewTO.GetContent aContent = Split(content, vbLf) bOneSelected = False 'Will be used for determining whether to use Select or ExtendSelect 'Iterate over items For curArrayIndex = 0 To UBound(aContent) curItemText = listViewTO.GetItemProperty(curArrayIndex, "text") 'Select the current item if it begins with the specified letter If InStr(curItemText, letter) = 1 Then 'Use the Select method if no items have been selected, otherwise use ExtendSelect If bOneSelected = False Then listViewTO.Select curArrayIndex bOneSelected = True Else listViewTO.ExtendSelect curArrayIndex End If End If Next
GetCheckMarks Method
Description
Retrieves the number and the value of items marked as checked.
Syntax
object.GetCheckMarks
Return Type
A String value.
IMPORTANT
You can use this method only for list-view controls with 1000 or fewer items.
Example
'The following example uses the GetCheckMarks method to create an array 'of all the checked items in the ListView. It then unchecks any checked executable 'items. 'Create an array of all checked items Checked = listViewTO.GetCheckMarks aChecked = Split(Checked, ";") 'Iterate over the array For curArrayIndex = 0 To UBound(aChecked) curItem = aChecked(curArrayIndex) curItemType = listViewTO.GetSubItem(curItem, "type") 'might need to use "curItem + 1 - 1" instead of "curItem" 'If the file is executable, uncheck it. Then verify that it was unchecked If curItemType = "Application" Then listViewTO.SetItemState curItem, micUnchecked 'might need to use "curItem + 1 - 1" instead of "curItem"' End If Next
GetColumnHeader Method
Description
Returns the text header of the specified (report-style) list-view column.
Syntax
object.GetColumnHeader (Column)
Arguments
Parameter | Description |
---|---|
Column |
Required. A Variant. Required. A Variant value. The number of the list column whose header text you want to retrieve. The first column in a list-view control is numbered 0. |
Return Type
A String value.
IMPORTANT
The columns are numbered from left to right according to their currently displayed order.
Example
'The following example uses the GetColumnHeader method to identify the ''Type' column in the folder. It then uses the GetItemsCount and GetSubItem methods 'to determine if the file is of the specified type. If it is, it uses the DragItem 'and DropOnItem methods to move the file to the sub-folder. 'Get the index of the 'type' column numColumns = listViewTO.ColumnCount For curIndex = 0 To numColumns - 1 curColumnName = listViewTO.GetColumnHeader(curIndex) If curColumnName = "type" Then typeColumnIndex = curIndex End If Next 'Loop over all files numItems = listViewTO.GetItemsCount For curIndex = 0 To numItems - 1 curFileType = listViewTO.GetSubItem(curIndex, typeColumnIndex) If curFileType = "Application Extension" Then listViewTO.DragItem curIndex, micLeftBtn listViewTO.DropOnItem subFolder, micLeftBtn End If Next
GetContent Method
Description
Returns a string containing all of the items in the list.
Syntax
object.GetContent
Return Type
A String value.
The returned string contains all of the items in the list separated by VBScript line feed characters.
IMPORTANT
You can use this method only for list-view controls with 1000 or fewer items.
Example
'The following example uses the GetItemProperty method to retrieve the 'text of an item in the List control. It then determines if the item text begins 'with the specified letter. If it does, then if no items have been selected yet 'the item is selected using the Select method. If items have already been selected 'the ExtendSelect method is used. content = listViewTO.GetContent aContent = Split(content, vbLf) bOneSelected = False 'Will be used for determining whether to use Select or ExtendSelect 'Iterate over items For curArrayIndex = 0 To UBound(aContent) curItemText = listViewTO.GetItemProperty(curArrayIndex, "text") 'Select the current item if it begins with the specified letter If InStr(curItemText, letter) = 1 Then 'Use the Select method if no items have been selected, otherwise use ExtendSelect If bOneSelected = False Then listViewTO.Select curArrayIndex bOneSelected = True Else listViewTO.ExtendSelect curArrayIndex End If End If Next
GetItem Method
Description
Returns the value of the item specified by the index.
Syntax
object.GetItem (Item)
Arguments
Parameter | Description |
---|---|
Item |
Required. A Variant. Numeric index of the item. Index values begin with 0. |
Return Type
A String value.
Example
'The following example uses the GetItem method to determine the index of the first 'and last files in the folder that begin with the specified letter. It then 'uses the SelectRange method to select the all files that begin with the 'specified letter. numItems = listViewTO.GetItemsCount 'Find the index of the first item to be selected For curIndex = 0 To numItems - 1 curItem = listViewTO.GetItem(curIndex) If InStr(curItem, letter) = 1 Then indexOfFirst = curIndex Exit For End If Next 'Find the index of the last item to be selected For curIndex = numItems - 1 To 0 Step -1 curItem = listViewTO.GetItem(curIndex) If InStr(curItem, letter) = 1 Then indexOfLast = curIndex Exit For End If Next 'Select the range listViewTO.SelectRange indexOfFirst, indexOfLast
GetItemProperty Method
Description
Returns the current value of a property for an item in the list.
Syntax
object.GetItemProperty (Item, Property)
Arguments
Parameter | Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Item |
Required. A Variant. The item name (with quotes) or numeric index (without quotes) can denote the item. The first item in a list-view control is numbered 0. | ||||||||||
Property |
Required. A String value. The list-view control property for which you want to retrieve a value. The following properties are supported:
|
Return Type
A Variant.
Example
'The following example uses the GetItemProperty method to retrieve the 'text of an item in the List control. It then determines if the item text begins 'with the specified letter. If it does, then if no items have been selected yet 'the item is selected using the Select method. If items have already been selected 'the ExtendSelect method is used. numItems = listViewTO.GetItemsCount bOneSelected = False 'Will be used for determining whether to use Select or ExtendSelect 'Iterate over all the items in the ListView For curIndex = 0 To numItems - 1 curItem = listViewTO.GetItemProperty(curIndex, "text") 'Select current item if it begins with the given letter If InStr(curItem, letter) = 1 Then 'Use the Select method for selection if no items have been selected yet, otherwise use ExtendSelect If bOneSelected = False Then listViewTO.Select curIndex bOneSelected = True Else listViewTO.ExtendSelect curIndex End If End If Next
'The following example uses the GetItemProperty method to retrieve the 'text of an item in the List control. It then determines if the item text begins 'with the specified letter. If it does, then if no items have been selected yet 'the item is selected using the Select method. If items have already been selected 'the ExtendSelect method is used. content = listViewTO.GetContent aContent = Split(content, vbLf) bOneSelected = False 'Will be used for determining whether to use Select or ExtendSelect 'Iterate over items For curArrayIndex = 0 To UBound(aContent) curItemText = listViewTO.GetItemProperty(curArrayIndex, "text") 'Select the current item if it begins with the specified letter If InStr(curItemText, letter) = 1 Then 'Use the Select method if no items have been selected, otherwise use ExtendSelect If bOneSelected = False Then listViewTO.Select curArrayIndex bOneSelected = True Else listViewTO.ExtendSelect curArrayIndex End If End If Next
GetItemsCount Method
Description
Returns the number of items in the list.
Syntax
object.GetItemsCount
Return Type
A long integer value.
Example
'The following example uses the GetColumnHeader method to identify the ''Type' column in the folder. It then uses the GetItemsCount and GetSubItem methods 'to determine if the file is of the specified type. If it is, it uses the DragItem 'and DropOnItem methods to move the file to the sub-folder. 'Get the index of the 'type' column numColumns = listViewTO.ColumnCount For curIndex = 0 To numColumns - 1 curColumnName = listViewTO.GetColumnHeader(curIndex) If curColumnName = "type" Then typeColumnIndex = curIndex End If Next 'Loop over all files numItems = listViewTO.GetItemsCount For curIndex = 0 To numItems - 1 curFileType = listViewTO.GetSubItem(curIndex, typeColumnIndex) If curFileType = "Application Extension" Then listViewTO.DragItem curIndex, micLeftBtn listViewTO.DropOnItem subFolder, micLeftBtn End If Next
GetSelection Method
Description
Returns all of the selected items in the list.
Syntax
object.GetSelection
Return Type
A String value.
The returned string contains all of the selected items in the list-view control separated by VBScript line feed characters.
Example
'The following example uses the GetSelection method to retrieve the items 'in the specified ListView. It then enables the items for editing using the 'EditLabel method. Selected = listViewTO.GetSelection aSelected = Split(Selected, vbLf) 'Iterate over the selected items For curArrayIndex = 0 To UBound(aSelected) 'Enable the label for editing curItem = aSelected(curArrayIndex) listViewTO.EditLabel curItem Next
GetSubItem Method
Description
Returns the text value of the report-style list-view subitem.
Syntax
object.GetSubItem (Item, [SubItem])
Arguments
Parameter | Description |
---|---|
Item |
Required. A Variant. The name or index value of the list-view control item whose sub-item you want to retrieve. |
SubItem |
Optional. A Variant. The name or numeric index of the list-view control sub-item you want to retrieve. If no value is specified, the first sub-item (index = 0) is used. Default value = 0 |
Return Type
A String value.
Example
'The following example uses the GetColumnHeader method to identify the ''Type' column in the folder. It then uses the GetItemsCount and GetSubItem methods 'to determine if the file is of the specified type. If it is, it uses the DragItem 'and DropOnItem methods to move the file to the sub-folder. 'Get the index of the 'type' column numColumns = listViewTO.ColumnCount For curIndex = 0 To numColumns - 1 curColumnName = listViewTO.GetColumnHeader(curIndex) If curColumnName = "type" Then typeColumnIndex = curIndex End If Next 'Loop over all files numItems = listViewTO.GetItemsCount For curIndex = 0 To numItems - 1 curFileType = listViewTO.GetSubItem(curIndex, typeColumnIndex) If curFileType = "Application Extension" Then listViewTO.DragItem curIndex, micLeftBtn listViewTO.DropOnItem subFolder, micLeftBtn End If Next
GetTextLocation Method
Description
Checks whether the specified text string is contained in the specified window area.
Syntax
object.GetTextLocation (TextToFind, Left, Top, Right, Bottom, [MatchWholeWordOnly])
Arguments
Parameter | Description |
---|---|
TextToFind |
Required. A String value. The text string you want to locate. |
Left |
Required. A Variant. The left coordinate of the search area within the window or screen, as a long integer. |
Top |
Required. A Variant. The top coordinate of the search area within the window or screen, as a long integer. |
Right |
Required. A Variant. The right coordinate of the search area within the window or screen, as a long integer. |
Bottom |
Required. A Variant. The bottom coordinate of the search area within the window or screen, as a long integer. Note: Set the Left, Top, Right, and Bottom coordinates to -1 to search for the text string within the object’s entire window. |
MatchWholeWordOnly |
Optional. A Boolean value. If True, the method searches for occurrences that are whole words only and not part of a larger word. If False, the method does not restrict the results to occurrences that are whole words only. Default value = True |
Return Type
A Boolean value.
This method returns the coordinates of the rectangle containing the first instance of the text into the Left, Top, Right, and Bottom arguments if the text is found.
IMPORTANT
- The text to capture must be visible in the application window when the step runs.
- This method returns True only if the TextToFind argument value is found within a single line in the specified area. The text search restarts on each line of text.
- If the TextToFind argument value includes a space, then this method searches for that text as whole words, regardless of the value set in the MatchWholeWords argument. For example, if you search for "a b" and the text "bla bla" exists, the method will still return False. However, if the MatchWholeWords argument is set to False, then a search for "la" in an area where "bla bla" exists, would return True.
- If the text is found (return value = True) and if the Left, Top, Right, and Bottom arguments are supplied as variables, then the method also returns the exact coordinates of the specified text to the supplied arguments (the returned coordinates overwrite the supplied ones).
- The results of this method may be different depending on the settings selected in the Text Recognition pane of the Options dialog box (Tools menu > Options item > GUI Testing tab > Text Recognition pane).
- The results of this method may be different in different run sessions depending on the operating system version you are using, service packs you have installed, other installed toolkits, or the APIs used in your application. Therefore, when possible, it is highly recommended to use the GetROProperty Method to retrieve the value of the text (or equivalent) property from an object in your application instead of using the GetTextLocation method.
- By default, when OpenText Functional Testing captures text for a text/text area checkpoint or output value step using the GetText, GetTextLocation, or GetVisibleText methods, it tries to retrieve the text directly from the object using a Windows API-based mechanism. If OpenText Functional Testing cannot capture the text this way (for example, because the text is part of a picture), it tries to capture the text using an OCR (optical character recognition) mechanism. For details about changing this behavior, see the Can QuickTest Professional Text Recognition behavior be modified Knowledgebase article (number KM202721).
Example
'The following example uses the GetTextLocation method to locate the text on a 'button that has not been implemented with a separate control. Once the button 'is located, it is clicked. 'Find the text bFound = windowTO.GetTextLocation(buttonText, left_x, top_y, right_x, bottom_y, True) If bFound = False Then ClickUnrecognizedButton = False Exit Function End If 'Click the center of the button center_x = right_x - left_x center_y = bottom_y - top_y windowTO.Click center_x, center_y 'Set return value GetTextLocation_Example = True
GetVisibleText Method
Description
Returns the text from the specified area.
Syntax
object.GetVisibleText ([Left], [Top], [Right], [Bottom])
Arguments
Parameter | Description |
---|---|
Left |
Optional. A long integer value. The left coordinate of the search area within the object’s window. Default value = -1 |
Top |
Optional. A long integer value. The top coordinate of the search area the object’s window. Default value = -1 |
Right |
Optional. A long integer value. The right coordinate of the search area within the object’s window. Default value = -1 |
Bottom |
Optional. A long integer value. The bottom coordinate of the search area a within the object’s window. Note: If the Left, Top, Right, and Bottom arguments are not specified, the method returns all of the text within the visible part of the specified object. Default value = -1 |
Return Type
A String value.
IMPORTANT
- The text to capture must be visible in the application window when the step runs.
- The area is defined by pairs of coordinates that designate two diagonally opposite corners of a rectangle.
- The results of this method may be different depending on the settings selected in the Text Recognition pane of the Options dialog box (Tools menu > Options item > GUI Testing tab > Text Recognition pane).
- The results of this method may be different in different run sessions depending on the operating system version you are using, service packs you have installed, other installed toolkits, or the APIs used in your application. Therefore, when possible, it is highly recommended to use the GetROProperty Method to retrieve the value of the text (or equivalent) property from an object in your application instead of using the GetVisibleText method.
- By default, when OpenText Functional Testing captures text for a text/text area checkpoint or output value step using the GetText, GetTextLocation, or GetVisibleText methods, it tries to retrieve the text directly from the object using a Windows API-based mechanism. If OpenText Functional Testing cannot capture the text this way (for example, because the text is part of a picture), it tries to capture the text using an OCR (optical character recognition) mechanism. For details about changing this behavior, see the Can QuickTest Professional Text Recognition behavior be modified Knowledgebase article (number KM202721).
Example
'The following example uses the GetVisibleText method to determine if an error 'message has been displayed. If it has, the function returns 'True'. allText = windowTO.GetVisibleText If InStr(allText, "Error") <> 0 Then NoError = False Exit Function End If GetVisibleText_Example = True
MouseMove Method
Description
Moves the mouse pointer to the designated position inside the object.
Syntax
object.MouseMove X, Y
Arguments
Parameter | Description |
---|---|
X |
Required. An integer value. The x-coordinate of the mouse pointer, relative to the upper left corner of the object. |
Y |
Required. An integer value. The y-coordinate of the mouse pointer, relative to the upper left corner of the object. |
Return Type
None
Example
'The following example uses the Check method to verify that a tooltip
'is displayed when the mouse hovers over an object.
windowTO.MouseMove x, y
windowTO.Check bitmapCheckpoint
Select Method
Description
Selects an item from the list.
Syntax
object.Select Item, [BUTTON], [Offset]
Arguments
Parameter | Description |
---|---|
Item |
Required. A Variant. The item to select from the list-view control. The item value (with quotes) or numeric index (without quotes) can denote the item. The first item in a list-view control is numbered 0. |
BUTTON |
Optional. A predefined constant or number. The mouse button used to click the object. Default value = micLeftBtn |
Offset |
Optional. An integer value. The horizontal offset (in pixels) of the click location relative to the left margin of the item’s text. This argument can be used only if the BUTTON argument is defined. The default horizontal offset is the middle of the object. Default value = -1 |
Return Type
None
Example
'The following example uses the GetItemProperty method to retrieve the 'text of an item in the List control. It then determines if the item text begins 'with the specified letter. If it does, then if no items have been selected yet 'the item is selected using the Select method. If items have already been selected 'the ExtendSelect method is used. numItems = listViewTO.GetItemsCount bOneSelected = False 'Will be used for determining whether to use Select or ExtendSelect 'Iterate over all the items in the ListView For curIndex = 0 To numItems - 1 curItem = listViewTO.GetItemProperty(curIndex, "text") 'Select current item if it begins with the given letter If InStr(curItem, letter) = 1 Then 'Use the Select method for selection if no items have been selected yet, otherwise use ExtendSelect If bOneSelected = False Then listViewTO.Select curIndex bOneSelected = True Else listViewTO.ExtendSelect curIndex End If End If Next
'The following example uses the GetItemProperty method to retrieve the 'text of an item in the List control. It then determines if the item text begins 'with the specified letter. If it does, then if no items have been selected yet 'the item is selected using the Select method. If items have already been selected 'the ExtendSelect method is used. content = listViewTO.GetContent aContent = Split(content, vbLf) bOneSelected = False 'Will be used for determining whether to use Select or ExtendSelect 'Iterate over items For curArrayIndex = 0 To UBound(aContent) curItemText = listViewTO.GetItemProperty(curArrayIndex, "text") 'Select the current item if it begins with the specified letter If InStr(curItemText, letter) = 1 Then 'Use the Select method if no items have been selected, otherwise use ExtendSelect If bOneSelected = False Then listViewTO.Select curArrayIndex bOneSelected = True Else listViewTO.ExtendSelect curArrayIndex End If End If Next
SelectRange Method
Description
Selects all list items between (and including) the two specified items.
Syntax
object.SelectRange Item, [ItemTo]
Arguments
Parameter | Description |
---|---|
Item |
Required. A Variant. One of the items in the range. If the Item2 argument is not specified, then the Item is one end of the range and the currently selected item is the other end of the range. If the Item2 argument is specified, then Item is the first item in the range. The item value (with quotes) or numeric index (without quotes) can denote the item. The first item in a list is numbered 0. |
ItemTo |
Optional. A Variant. Required. A Variant value. One of the items in the range. If the ItemTo argument is not specified, then the Item is one end of the range and the currently selected item is the other end of the range. If the ItemTo argument is specified, then Item is the first item in the range. The item value (with quotes) or numeric index (without quotes) can denote the item. The first item in a list is numbered 0. |
Return Type
None
IMPORTANT
This method is applicable only to list-view controls that allow multiple selection.
Example
'The following example uses the GetItem method to determine the index of the first 'and last files in the folder that begin with the specified letter. It then 'uses the SelectRange method to select the all files that begin with the 'specified letter. numItems = listViewTO.GetItemsCount 'Find the index of the first item to be selected For curIndex = 0 To numItems - 1 curItem = listViewTO.GetItem(curIndex) If InStr(curItem, letter) = 1 Then indexOfFirst = curIndex Exit For End If Next 'Find the index of the last item to be selected For curIndex = numItems - 1 To 0 Step -1 curItem = listViewTO.GetItem(curIndex) If InStr(curItem, letter) = 1 Then indexOfLast = curIndex Exit For End If Next 'Select the range listViewTO.SelectRange indexOfFirst, indexOfLast
SetItemState Method
Description
Sets the state of the check box icon of the specified item in the list.
Syntax
object.SetItemState Item, State
Arguments
Parameter | Description |
---|---|
Item |
Required. A Variant. The item to select from the list-view control. The item value (with quotes) or numeric index (without quotes) can denote the item. The first item in a list-view control is numbered 0. |
State |
Required. An integer value. The object's state. The state can either be an index, or one of the following state constants: |
Return Type
None
Example
'The following example uses the GetCheckMarks method to create an array 'of all the checked items in the ListView. It then unchecks any checked executable 'items. 'Create an array of all checked items Checked = listViewTO.GetCheckMarks aChecked = Split(Checked, ";") 'Iterate over the array For curArrayIndex = 0 To UBound(aChecked) curItem = aChecked(curArrayIndex) curItemType = listViewTO.GetSubItem(curItem, "type") 'might need to use "curItem + 1 - 1" instead of "curItem" 'If the file is executable, uncheck it. Then verify that it was unchecked If curItemType = "Application" Then listViewTO.SetItemState curItem, micUnchecked 'might need to use "curItem + 1 - 1" instead of "curItem"' End If Next
SetROProperty Method
Description
Sets the value of the specified property of the object in the application.
Syntax
object.SetROProperty PropertyName, PropertyValue
Arguments
Parameter | Description |
---|---|
PropertyName |
Required. A String value. The name of the property you want to set. You can specify any test object description properties supported for the object, or any property of the run-time Delphi object. |
PropertyValue |
Required. A Variant. The value to set. |
Return Type
None
Example
'The following example uses the SetROProperty to move the scroll bar 'to the specified position. scrollBarTO.SetROProperty "position", pos
Type Method
Description
Types the specified string in the object.
Syntax
object.Type KeyboardInput
Arguments
Parameter | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
KeyboardInput |
Required. A String value. The text string and/or constants representing non-alphanumeric keys. The following constants are available:
|
Return Type
None
IMPORTANT
Although the Type method is supported for most objects, if you enter a Type statement for an object in which a user cannot enter text, the method has no visual effect.
Example
'The following example uses the SetSelection method to replace the word "sad" 'with the word "happy". It then uses the SetCaretPos method to place the cursor at 'the eighth character position in the "Edit1" window, and type the word "very". DelphiWindow("Form1").DelphiEditor("RichEdit1").Type "I am happy." + micReturn DelphiWindow("Form1").DelphiEditor("RichEdit1").Type "You are sad." + micReturn DelphiWindow("Form1").DelphiEditor("RichEdit1").SetSelection 1, 8, 1, 11 DelphiWindow("Form1").DelphiEditor("RichEdit1").Type "happy" DelphiWindow("Form1").DelphiEditor("RichEdit1").SetCaretPos 1, 8 DelphiWindow("Form1").DelphiEditor("RichEdit1").Type "very "
WaitItemProperty Method
Description
Waits until the specified item property achieves the specified value or exceeds the specified timeout before continuing to the next step.
Syntax
object.WaitItemProperty (Item, PropertyName, PropertyValue, [TimeOut])
Arguments
Parameter | Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Item |
Required. A Variant. The item name (with quotes) or numeric index (without quotes) can denote the item. The first item in a list is numbered 0. | ||||||||||
PropertyName |
Required. A String value. The name of the item property whose value to wait for. The following properties are supported:
| ||||||||||
PropertyValue |
Required. A Variant. The expected value against which the actual item property value should be checked. You can either use a simple value or you can use a comparison object together with the value to perform more complex comparisons. | ||||||||||
TimeOut |
Optional. A long integer value. The time, in milliseconds, after which OpenText Functional Testing continues to the next step if the specified item value is not achieved. If no value is specified, OpenText Functional Testing uses the time set in the Object Synchronization Timeout option in the Run pane of the Test Settings dialog box. Default value = -1 |
Return Type
A Boolean value.
Returns TRUE if the item property achieves the value, and FALSE if the timeout is reached before the item property achieves the value. A FALSE return value does not indicate a failed step.
IMPORTANT
Tip: This method is useful for test run synchronization. Unlike the Exist method and the WaitProperty method, the WaitItemProperty method enables you to synchronize the test run based on a specific object item property. For example, you can instruct OpenText Functional Testing to wait for a particular string to appear in the second panel of the "StatusBar" control:
' Wait up to 30 seconds for the string "Ready" to appear in the second panel of the "StatusBar" control.
DelphiWindow("Test").DelphiStatusBar("StatusBar").WaitItemProperty 2, "text", "Ready", 30000
You can also use comparison objects to perform more complex value comparisons. For example, you can instruct OpenText Functional Testing to wait until a specific item property value is greater than the specified value.
An example of the syntax required when using a comparison object is: Object.WaitItemProperty 2, "text", micNotEqual("John")"
The following comparison objects can be used:
- micGreaterThan: Greater than; Specifies that OpenText Functional Testing waits until the item property value is greater than the specified value.
- micLessThan: Less than; Specifies that OpenText Functional Testing waits until the item property value is less than the specified value.
- micGreaterThanOrEqual: Greater than or equal to; Specifies that OpenText Functional Testing waits until the item property value is greater than or equal to the specified value.
- micLessThanOrEqual: Less than or equal to; Specifies that OpenText Functional Testing waits until the item property value is less than or equal to the specified value.
- micNotEqual: Not equal to; Specifies that OpenText Functional Testing waits until the item property value is not equal to the specified value.
- micRegExpMatch: Regular expression; Specifies that OpenText Functional Testing waits until the item property value achieves a regular expression match with the specified value. Regular expressions are case-sensitive and must match exactly. For example, 'E.*h' matches 'Earth' but not 'The Earth' or 'earth'.
When the types of the expected value and actual value do not match, the comparisons are performed as follows (in this order):
- Empty values: Empty values may be an uninitialized variable or field (which returns TRUE for the IsNull function in VBscript) or initialized to an empty value (which returns TRUE for the IsEmpty function is VBscript). When trying to compare two arguments when at least one is an empty value, the comparison assumes equality for two uninitialized arguments and for two empty arguments. Any other combination is considered unequal.
For example:
dim vEmpty
Object.WaitItemProperty 2, “text”,micNotEqual(vEmpty)
does not wait for the timeout (because the 'text' property value is an empty string and the argument passed to micNotEqual is an empty value, and so micNotEqual finds them not equal and returns TRUE). - String values: When trying to compare a string value with non-string value, the string value is converted to the non-string type and then compared. If the string value cannot be converted to the non-string type, the comparison assumes the values are not equal.
For example:
Object.WaitItemProperty 2, “text”,micGreaterThan(8) does not wait for the timeout if the 'text' property value is '16' (because micGreaterThan finds 16 to be greater than 8 and returns TRUE), but waits if the 'text' property value is 'a' (because 'a' cannot be converted to a number). - Boolean values: When trying to compare a Boolean value with non-boolean value, the non-boolean value is converted to a boolean value and then compared. The conversion method assumes that any integer value other than '0' is TRUE, and that '0' alone is FALSE. If the conversion fails to produce a boolean value (for example, if the value is 'abc'), the comparison result will be FALSE (note that for the WaitProperty method this result would instruct OpenText Functional Testing to keep waiting). If the conversion succeeds, the method compares the two boolean values according to the comparison logic.
- Other value types: When other value types do not match, they are compared under the assumption that different types are not equal (nor greater than or less than each other).
Example
'The following example uses the WaitItemProperty method to verify that 'all the items in a Listview are selected and return 'True'. AllSelected = True 'Loop over all items numItems = listViewTO.GetItemsCount For curIndex = 0 To numItems - 1 curSelected = listViewTO.WaitItemProperty(curIndex, "selected", True, 0) AllSelected = AllSelected And curSelected Next WaitItemProperty_Example = AllSelected
See also: