§ 16. Компоненты для работы со списками строк

16.4. Компонент ComboBox

Компонент поле со списком — ComboBox представляет собой вариант списка с присоединенным к нему дополнительным полем, в котором отображается выбранный элемент списка. В это поле может быть введен текст. На панели компонентов Standard компонент поле со списком изображен в виде , имя объекта ComboBox. Компонент ComboBox, помещенный на форму, получает имя  ComboBoxN, где N — номер 1, 2, 3… (пример 16.9).

Основное свойство компонента ComboBox, так же как и у компонента ListBox — это свойство Items, принадлежащее к типу TSring. Начальное значение списка строк можно задать в окне редактирования списков строк (кнопка  около  свойства Items в окне инспектора объектов).

При выполнении программы для изменения содержимого окна компонента ComboBox применяются методы класса TString.

Компонент ComboBox не допускает множественного выбора и размещения списка в несколько столбцов. Свойства ItemIndex и Sorted у него такие как у компонента ListBox.

У компонента определены несколько стилей отображения (пример 16.10).

Основное событие компонента — OnChange.

Пример 16.11. В текстовых файлах 11А.txt, 11Б.txt, 11В.txt содержатся списки актива классов. При выборе класса должен загрузиться список актива.

Этапы выполнения задания

  1. Поместить на форму компоненты ComboBox и ListBox.
  2. Изменить свойство Text компонента ComboBox на «Классы».
  3. Заполнить список компонента ComboBox с помощью редактора списков строк.
  4. Написать обработчик события OnChange для компонента ComboBox.
Текстовые файлы, используемые при решении задач, можно создавать непосредственно в среде C++Builder. Для этого нужно выполнить команду File → New  Other. В открывшемся окне (пример 16.12) выбрать Other → Text File. Затем выбрать Текстовый документ. В окне редактора кода появится новая вкладка с именем New1.txt. В этом окне можно набрать содержимое файла и затем сохранить его.

Пример 16.9. КомпонентComboBox на форме:

Пример 16.10. Стиль изображения компонента ComboBox определяется его свойством Style. Некоторые значения свойства Style:

  • csDropDown — установлен по умолчанию, выпадающий список с полем, в котором можно вводить значение, доступное через свойство Text;
  • csSimple — раскрытый список, остальное как у csDropDown;
  • csDropDownList — выпадающий список без окна редактирования.

Пример 16.11. Форма на этапе проектирования:

Обработчик события OnChange для компонента ComboBox.

void __fastcall TForm1::ComboBox1Change
                TObject *Sender)

{

  switch (ComboBox1->ItemIndex) {

    case 0: {

      ListBox1->Items->

      LoadFromFile("11A.txt");

      break;

    }

    case 1: {

      ListBox1->Items->

      LoadFromFile("11Б.txt");

      break;

    }

    case 2: {

      ListBox1->Items->

      LoadFromFile("11В.txt");

      break;

    }

  }

}

Работающее приложение:

Пример 16.12. Создание текстового файла: