Лабораторная работа №2

 

Использование компонентов выбора из списков

 

Цель работы: Освоить методику использования компонентов выбора из списков.

 

Требуется создать приложение, формирующее строку, содержащую фамилию, имя, отчество. Каждая составляющая строки выбирается из списков. Управление приложением осуществляется выбором команды из списка. Управление должно содержать следующие команды:

- Добавить Фамилию

- Добавить Имя

- Добавить Отчество

- Удалить Фамилию

- Удалить Имя

- Удалить Отчество

- Показать выбранное

- Очистить выбор

- Завершить программу

Окно для ввода данных должно появляться и исчезать в соответствии с выбранным действием.

 

Методика создания приложения

 

1. Создать приложение. На форме разместить необходимые компоненты.

2. Установить следующие свойства:

Компонент

Свойство

Значение

Form1

Caption

Составление имени

Form1

BorderStyle

bsSingle

Form1

BorderIcons->biMaximize

false

Label1

Caption

Фамилия

Label2

Caption

Имя

Label3

Caption

Отчество

Button1

Caption

Выполнить

StaticText1

Caption

 

LabeledEdit1

Text

 

LabeledEdit1

Visible

false

LabeledEdit1

Enabled

false

ComboBox1

Text

 

 

3. Задать список действий в c свойстве Items компонента ComboBox1

 

4. В окне редактора кода перейти на страницу заголовочного файла. В раздел private внести прототипы функций:

void show( ); - отображение окна ввода

void hide( ); - скрытие окна ввода

 

5. В окне редактора кода перейти на страницу файла реализации. Добавить обработчики функций show( ) и hide( ).

//--  Функция отображения поля ввода

void TForm1::show()

{

//--  Разрешаем отображение

LabeledEdit1->Enabled=true;

LabeledEdit1->Visible=true;

//--  Очищаем текст

LabeledEdit1->Text="";

//--  В зависимости от действия меняем текст подсказки

switch(ComboBox1->ItemIndex)

{

 case 0: LabeledEdit1->EditLabel->Caption="Фамилия ";

           break;

 case 1: LabeledEdit1->EditLabel->Caption="Имя ";

           break;

 case 2: LabeledEdit1->EditLabel->Caption="Отчество ";

           break;

}

}

 

//--  Функция скрытия поля ввода

void TForm1::hide()

{

LabeledEdit1->Enabled=false;

LabeledEdit1->Visible=false;

}

 

6. Создать обработчик события OnClick компонента ComboBox1. В тело обработчика события вести код:

switch(ComboBox1->ItemIndex)

{

 case  0: show(); break;

 case  1: show(); break;

 case  2: show(); break;

 case  3: hide(); return; break;

 case  4: hide(); return; break;

 case  5: hide(); return; break;

 case  6: hide(); return; break;

 case  7: hide(); return; break;

 }

7. Создать обработчик события OnClick компонента Button1. В тело обработчика события вести код:

switch (ComboBox1->ItemIndex)

{

 //--  Если не выбрано действие - выводим сообщение

 case -1: ShowMessage("Не выбрано действие"); break;

 //--  Выбрано добавление Фамилии

 case  0: //--  Проверяем введена ли фамилия

          if(LabeledEdit1->Text.Length()==0)

          {

           ShowMessage("Не введен текст для добавления");

           return;

          }

          //--  Если введена - добавляем

            ListBox1->Items->Add(LabeledEdit1->Text);

          break;

 //--  Выбрано добавление Имени

 case  1: //--  Проверяем введено ли имя

          if(LabeledEdit1->Text.Length()==0)

          {

           ShowMessage("Не введен текст для добавления");

           return;

          }

          //--  Если введено - добавляем

          ListBox2->Items->Add(LabeledEdit1->Text);

          break;

 //--  Выбрано добавление Отчества

 case  2: //--  Проверяем введено ли отчество

          if(LabeledEdit1->Text.Length()==0)

          {

           ShowMessage("Не введен текст для добавления");

           return;

          }

          //--  Если введено - добавляем

          ListBox3->Items->Add(LabeledEdit1->Text);

          break;

 //--  Выбрано удаление Фамилии

 case  3: //-- Прверяем выбрана ли Фамилия для удаления

          if(ListBox1->ItemIndex==-1)

          {

            ShowMessage("Выберите Фамилию");

            return;

          }

          //-- Если выбрана то удаляем

          ListBox1->Items->Delete(ListBox1->ItemIndex);

          break;

 //--  Выбрано удаление Имени

 case  4: //-- Прверяем выбрано ли Имя для удаления

          if(ListBox1->ItemIndex==-1)

          {

            ShowMessage("Выберите Имя");

            return;

          }

          //-- Если выбрано то удаляем

          ListBox2->Items->Delete(ListBox2->ItemIndex);

          break;

 //--  Выбрано удаление Отчества

 case  5: //-- Прверяем выбрано ли Отчество для удаления

          if(ListBox3->ItemIndex==-1)

          {

            ShowMessage("Выберите Отчество");

            return;

          }

          //-- Если выбрано то удаляем

          ListBox3->Items->Delete(ListBox3->ItemIndex);

          break;

 //-- Выбрано отображениие Фамилии Имени Отчества

 case  6: //--  Выбрана ли Фамилия

          if(ListBox1->ItemIndex==-1)

          {

            ShowMessage("Выберите Фамилию");

            return;

          }

          //-- Выбрано ли Имя

          if(ListBox2->ItemIndex==-1)

          {

            ShowMessage("Выберите Имя");

            return;

          }

          //-- Выбрано ли Отчество

          if(ListBox3->ItemIndex==-1)

          {

            ShowMessage("Выберите Отчество");

            return;

          }

    //--  Если все выбрано - выводим

    StaticText1->Caption=

      ListBox1->Items->Strings[ListBox1->ItemIndex]+" "+

    ListBox1->Items->Strings[ListBox1->ItemIndex]+" "+

    ListBox1->Items->Strings[ListBox1->ItemIndex];

    break;

 //--  Выбрана очистка

 case  7:

    //-- Очищаем текст

    StaticText1->Caption="";

    ComboBox1->Text="";

    //--  Очищаем выбор

    ListBox1->ItemIndex=-1;

    ListBox2->ItemIndex=-1;

    ListBox3->ItemIndex=-1;

    ComboBox1->ItemIndex=-1;

    break;

 //--  Выбрано закрытие программы

 case  8: Close(); break;

}

 

8. Запустить приложение. Убедиться в работоспособности всех функций приложения.

 

 

 

 

Hosted by uCoz