The following code demonstrates how to work with TListView items (from the Borland VCL) from a TestComplete script using the methods and properties of the Win32ListView object. This example assumes that the application displays a form with a TListView control on it, and that this list view is passed to the SaveItems routine as its first parameter. First, SaveItems retrieves all list view items and saves them as text under the filename specified as the second parameter. Then, SaveItems compares this file with another one (the name is hard coded) and reports whether the list view contents have changed directly to the test log.
To start testing, run the Main routine in TestComplete.
JavaScript, JScript
function Main()
{
  var p, w;
  p = Sys.Process("Project1");
  w = p.Window("TForm1", "Form1");
  SaveItems (w.Window("TListView", "listView1"), "c:\\Work\\Test1.txt");
} 
function SaveItems(LV , FileName)
{
  var i,s;
  Log.Message("ListView Items:");
  aqFile.WriteToTextFile(FileName, "ListView Items:" + "\r\n", aqFile.ctANSI, true);
  // Iterates through the items collection 
  for (i=0; i<LV.wItemCount; i++) 
  {
    // Obtains item caption 
    s = LV.wItem(i,0);
    Log.Message(s);
    // Writes item caption to file 
    aqFile.WriteToTextFile(FileName, s + "\r\n", aqFile.ctANSI);
  }
  // Compares the generated file with the stored file 
  if (! Files.Compare(FileName, "ListViewContents.txt"))
    Log.Error("ListView has changed")
  else
    Log.Message("OK");
}
Python
def Main():
  p = Sys.Process("Project1")
  w = p.Window("TForm1", "Form1")
  SaveItems (w.Window("TListView", "listView1"), "c:\\Work\\Test1.txt")
def SaveItems(LV , FileName):
  Log.Message("ListView Items:")
  aqFile.WriteToTextFile(FileName, "ListView Items:" + "\r\n", aqFile.ctANSI, True)
  # Iterates through the items collection 
  for i in range(0, LV.wItemCount-1):
    # Obtains item caption 
    s = LV.wItem[i,0]
    Log.Message(s)
    # Writes item caption to file 
    aqFile.WriteToTextFile(FileName, s + "\r\n", aqFile.ctANSI)
  # Compares the generated file with the stored file 
  if not Files.Compare(FileName, "ListViewContents.txt"):
    Log.Error("ListView has changed")
  else:
    Log.Message("OK")
VBScript
Sub Main
  Dim p, w
  Set p = Sys.Process("Project1")
  Set w = p.Window("TForm1", "Form1")
  Call SaveItems (w.Window("TListView", "listView1"), "C:\Work\Test1.txt")
End Sub
Sub SaveItems(LV, FileName)
  Log.Message("ListView Items:")
  Call aqFile.WriteToTextFile(FileName, "ListView Items:" & vbNewLine, aqFile.ctANSI, True)
  ' Iterates through the items collection 
  For i=0 To LV.wItemCount-1
    ' Obtains item caption 
    s = LV.wItem(i,0)
    Log.Message(s)
    ' Writes item caption to file 
    Call aqFile.WriteToTextFile(FileName, s & vbNewLine, aqFile.ctANSI)
  Next 
  ' Compares the generated file with the stored file 
  If Not Files.Compare(FileName, "ListViewContents.txt") Then 
    Log.Error("ListView has changed")
  Else 
    Log.Message("OK")
  End If 
End Sub
DelphiScript
procedure SaveItems(LV, FileName : OleVariant);
var i, s : OleVariant;
begin 
  Log.Message('ListView Items:');
  aqFile.WriteToTextFile(FileName, 'ListView Items:' + #13#10, aqFile.ctANSI, true);
  // Iterates through the items collection 
  for i:=0 to LV.wItemCount-1 do 
  begin 
    // Obtains item caption 
    s := LV.wItem[i,0];
    Log.Message(s);
    // Writes item caption to file 
    aqFile.WriteToTextFile(FileName, s  + #13#10, aqFile.ctANSI);
  end;
  // Compares the generated file with the stored file 
  if not Files.Compare(FileName, 'ListViewContents.txt') then 
    Log.Error('ListView has changed')
  else 
    Log.Message('OK');
end;
procedure Main;
var p, w: OleVariant;
begin 
  p := Sys.Process('Project1');
  w := p.Window('TForm1', 'Form1');
  SaveItems (w.Window('TListView', 'listView1'), 'c:\Work\Test1.txt');
end;
C++Script, C#Script
function Main()
{
  var p, w;
  p = Sys["Process"]("Project1");
  w = p["Window"]("TForm1", "Form1");
  SaveItems (w["Window"]("TListView", "listView1"), "c:\\Work\\Test1.txt");
} 
function SaveItems(LV , FileName)
{
  var i,s;
  Log["Message"]("ListView Items:");
  aqFile["WriteToTextFile"](FileName, "ListView Items:" + "\r\n", aqFile.ctANSI, true);
  // Iterates through the items collection 
  for (i=0; i<LV["wItemCount"]; i++) 
  {
    // Obtains item caption 
    s = LV["wItem"](i,0);
    Log["Message"](s);
    // Writes item caption to file 
    aqFile.WriteToTextFile(FileName, s + "\r\n", aqFile.ctANSI);
  }
  // Compares the generated file with the stored file 
  if (! Files["Compare"](FileName, "ListViewContents.txt"))
    Log["Error"]("ListView has changed")
  else
    Log["Message"]("OK");
}
See Also
Working With List View Controls in Desktop Windows Applications
