RAD Studio VCL Reference
TCollectionItem.Index Property

Returns the item's position in the Items array of TCollection.

property Index: Integer;
__property int Index;

Each TCollectionItem is indexed in the Items array of the TCollection to which it belongs. The Index property of the TCollectionItem contains the item's index value in that array. Read the value of Index to determine the collection item's position. Set the value of Index to move the collection item to a new position. 

Items is a zero-based array. The first member of the collection has an index value of 0, the second member has an index value of 1, and so forth.  

C++ Examples: 


This example shows how to use the OnColumnClick and
OnCompare events of a list view to let users sort the
columns in a report-style list view by clicking on the
column headers. This requires a global variable to keep
track of the column that was clicked.  The OnColumnClick
event handler sets the global variable to indicate the
column to sort and calls AlphaSort:
void __fastcall TForm1::FormCreate(TObject *Sender)
  TListItem *Item;
  TListColumn *Column;
  const char imagenames[3][20] = {
    "C++ Image", "Borland Image", "Delphi Image"};
  const char Col2Array[3][40] = {
    "Documentation for the C++ icon.", 
    "Borland icon.", "Delphi icon."
  // Create a ListView item for each image in the ImageList
  ListView1->SmallImages = ImageList1;
  ListView1->LargeImages = ImageList1;
  for (int i = 0; i < ImageList1->Count; i++)
    Item = ListView1->Items->Add();
    Item->Caption = imagenames[i];
    Item->ImageIndex = i;
  // Create two columns to show during viewing as vsReport
  Column = ListView1->Columns->Add();
  Column->Caption = "Column 1";
  Column->Width = 200;
  Column = ListView1->Columns->Add();
  Column->Caption = "Column 2";
  Column->Width = 200;
  ListView1->ViewStyle = vsReport;

int ColumnToSort = 0;

The OnColumnClick event handler sets the global variable to
indicate the column to sort and calls AlphaSort:

void __fastcall TForm1::ListView1ColumnClick(TObject *Sender,
      TListColumn *Column)
  ColumnToSort = Column->Index;
  dynamic_cast<TCustomListView *>(Sender)->AlphaSort();

The OnCompare event handler causes the list view to sort on
the selected column:

void __fastcall TForm1::ListView1Compare(TObject *Sender, TListItem *Item1,
      TListItem *Item2, int Data, int &Compare)
  if (ColumnToSort == 0)
    Compare = CompareText(Item1->Caption,Item2->Caption);
    int ix = ColumnToSort - 1;
    Compare = 
      CompareText(Item1->SubItems->Strings[ix], Item2->SubItems->Strings[ix]);


Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!