Komponent ComboBox jest rozwijaną listą. Jest powszechnie wykorzystywany w okienkach do otwierania i zapisywania plików (OpenDialog i SaveDialog). Może posłużyć jako lista wyboru dla dysków, plików itp.


Menu


Wstawianie pozycji listy do ComboBox.

    Żeby wstawić do listy obiektu ComboBox nową pozycję w czasie działania programu należy posłużyć się właściwością Add(AnsiString S):

// Plik źródłowy np. Unit1.cpp
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 ComboBox1->Items->Add("tutej wpisz nazwę pozycji");
}
//--------------------------------

To oczywiście pozwala na wprowadzenie tylko pojedynczego elementu listy. Żeby wprowadzić więcej niż jedną pozycję należy posłużyć się pętlą:

// Plik źródłowy np. Unit1.cpp
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 for(int i = 0; i < 5; i++)
 {
  ComboBox1->Items->Add("Pozycja: " + IntToStr(i));
 }
}
//--------------------------------

W ten sposób zostanie utworzona lista zawierająca następujące elementy:

Pozycja: 0
Pozycja: 1
Pozycja: 2
Pozycja: 3
Pozycja: 4

...powrót do menu. 

Odczytywanie pozycji z listy ComboBox.

    Żeby odczytać dowolną pozycję z listy ComboBox trzeba podać jej położenie wewnątrz listy licząc od zera:

// Plik źródłowy np. Unit1.cpp
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 Label1->Caption = ComboBox1->Items->Strings[2]; // Odczytano drugą pozycję z listy licząc od zera.
}
//--------------------------------

W celu odczytania zwartości aktualnie zaznaczonej pozycji na liście, czyli takiej która jest właśnie wyświetlana należy posłużyć się właściwością ItemIndex:

// Plik źródłowy np. Unit1.cpp
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 Label1->Caption = ComboBox1->Items->Strings[ComboBox1->ItemIndex]; // Odczytano zaznaczoną pozycję na liście.
}
//--------------------------------


...powrót do menu. 

Wybranie pozycji z ComboBox poprzez podanie nazwy elementu listy.

    Czasami może zaistnieć konieczność wybrania w ComboBox pozycji z listy poprzez podanie jej nazwy, np. podczas wyszukiwania gdy lista zawiera kilkaset pozycji a my chcemy sprawdzić czy znajduje się na niej poszukiwany element i określić jego położenie na liście. W tym celu należy posłużyć się właściwością IndexOf(AnsiString S).
Żeby określić pozycję poszukiwanego elementu na liście:

// Plik źródłowy np. Unit1.cpp
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 int x = ComboBox1->Items->IndexOf("Poszukiwany element listy");
}
//--------------------------------

Żeby określić pozycję poszukiwanego elementu na liście i wywołać ją jeśli poszukiwany element znajduje się na liście:

// Plik źródłowy np. Unit1.cpp
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 ComboBox1->ItemIndex = ComboBox1->Items->IndexOf("Poszukiwany element listy");
}
//--------------------------------

...powrót do menu. 

Wybranie pozycji z ComboBox poprzez podanie numeru elementu listy

    W celu wybranie elementu listy tylko poprzez podanie jego pozycji na liście należy posłużyć się właściwością ItemIndex:

// Plik źródłowy np. Unit1.cpp
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 ComboBox1->ItemIndex = 3; // wybrano trzecią pozycję z listy.
}
//--------------------------------

...powrót do menu. 

Zamiana wartości (treści) określonego elementu listy Combobox.

    Żeby można było zmienić zawartość określonego elementu listy taki element musi istnieć, a robi się to wykorzystując właściwość Strings[x]:

// Plik źródłowy np. Unit1.cpp
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 ComboBox1->Items->Strings[2] = "Zmieniona wartość"; // zmieniono zawartość trzeciego elementu listy.
}
//--------------------------------

...powrót do menu. 

Czyszczenie zawartości ComboBox oraz kasowanie określonego elementu listy.

    Żeby wyczyścić zawartość ComboBox należy posłużyć się funkcją Clear():

// Plik źródłowy np. Unit1.cpp
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 ComboBox1->Clear();
}
//--------------------------------

W celu skasowania pojedynczego elementu listy należy podać pozycję tego elementu jako parametr funkcji Delete(x):

// Plik źródłowy np. Unit1.cpp
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 ComboBox1->Items->Delete(4); // Usunięto czwarty element na liście licząc od zera.
}
//--------------------------------

...powrót do menu. 

Wstawianie nowego elementu listy w wybranej pozycji do ComboBox.

    Żeby wstawić nowy element listy w wybranej pozycji należy posłużyć się funkcją Insert(int x, AnsiString S) przekazując jako parametry pozycję na liście w której zostanie wstawiony nowy element oraz jako drugi parametr treść wstawianego elementu. Nowo pozycja zostanie wstawiona przed określoną pozycją przy czym nie powoduje to usunięcia znajdującego się już tam elementu, a jedynie jego przesunięcie w dół listy:

// Plik źródłowy np. Unit1.cpp
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 ComboBox1->Items->Insert(2, "Wstawiany element listy"); // Wstawiono nowy element w drugiej pozycji.
}
//--------------------------------

...powrót do menu.