D7ComboBox (C++)

From RAD Studio Code Examples
Jump to: navigation, search

Description

This example requires a TListView, a TImageList, and a TComboBox. You have to double-click the image list and add several images to the image list prior to running the project. During the form�s OnCreate event handler, items for the List View control are created for each image in the Image List and the ImageIndex is assigned the number of the image within the ImageList. Two columns are created so that when ViewStyle is vsReport, you have columns to view. Also, within the form�s OnCreate event handler, assign the ComboBox each of the four TViewStyle constants to the Items� Objects property. You could also simply code this within a series of OnClick event handlers as, for instance, ListView1.->ViewStyle := vsIcon.

Code

__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
  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;
	Item->SubItems->Add(Col2Array[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;
  // Add View styles and constants to the Combo Box.
  ComboBox1->Items->AddObject("vsIcon", reinterpret_cast<TObject *>(vsIcon));
  ComboBox1->Items->AddObject("vsList", reinterpret_cast<TObject *>(vsList));
  ComboBox1->Items->AddObject("vsReport", reinterpret_cast<TObject *>(vsReport));
  ComboBox1->Items->AddObject("vsSmallIcon", reinterpret_cast<TObject *>(vsSmallIcon));
  // Display first item in the Combo Box
  ComboBox1->ItemIndex = 0;
}

void __fastcall TForm1::ComboBox1Click(TObject *Sender)
{
  ListView1->ViewStyle = (TViewStyle) ComboBox1->Items->Objects[ComboBox1->ItemIndex];
}

Uses