Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СМП(метод.).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
899.58 Кб
Скачать

Лабораторная работа № 4 тема: специализированные списки drivelistbox, filelistbox, valuelisteditor. Расширенные возможности

цель: ОРГАНИЗАЦИЯ РАБОТЫ С ФАЙЛОВОЙ СИСТЕМОЙ КОМПЬЮТЕРА. ИСПОЛЬЗОВАНИЕ СПЕЦИАЛИЗИРОВАННЫХ КОМПОНЕНТОВ ДЛЯ ДИНАМИЧЕСКОГО ВЫБОРА, ВВОДА И РЕДАКТИРОВАНИЯ ЗНАЧЕНИЙ

4.1 Общие сведения

4.1.1 Справка по используемым компонентам

  • TEdit, TmaskEdit – ввод и вывод однострочных символьных сообщений.

TMemo – отображение и редактирование многострочных текстовых документов.

Memo1->Lines->Strings[1] – пример обращения к строке типа AnsiString окна Memo.

  • ListBox – отображение строк в режиме выбора пользователя.

ListBox1-> Items[0] – указатель на первую строку в списке.

ListBox1-> Items->Strings[0] – первая строка в списке.

Пример работы со списком в формате имя = значение

for (int j=0; j<=ListBox1->Count; j++)

if (ListBox1->Items[j]->IndexOfName(“имя”)>-1)

{

}

IndexOfName- возвращает индекс строки, если ее имя совпадает с аргументом.

  • DirListBox, FileListBox – отображение и переключение текущих элементов логического диска, каталогов и файлов.

Пример обработки события OnChange для синхронизации работы компонентов

void_fastcall TForm1::DriveComboBox1Change (TObject *Sender)

{

DirectoryListbox1-> Drive=FileListBox->Drive=DriveComboBox->Drive;

FileListBox1->Directory=DirectoryListBox1->Directory;

}

  • TValueListEditor – редактируемый список значений. Возможность динамического обновления величин, выбираемых пользователем в списке. KeyName, Values – поля списка.

ValueList->ItemProps[i]->EditStyle=esSimple – простое редактирование элемента списка;

ValueList->ItemProps[i]->EditStyle=esPickList – выбор элемента из динамического списка;

ValueList->ItemProps[i]->PickList->Add (“текст”) – выбор элемента из статического списка;

void __fastcall TForm1::FormCreate(TObject *Sender)

{

ValueListEditor1->Strings->Add("Поле1=Значение1");

ValueListEditor1->Strings->Add("Поле2=Значение2");

ValueListEditor1->Strings->Add("Поле3=Значение3");

ValueListEditor1->Strings->Add("Поле4=Значение4");

ValueListEditor1->Strings->Add("Поле5=Значение5");

}

void __fastcall TForm1::FormCreate(TObject *Sender)

{

// Fill out the Value List Editor with a few strings

ValueListEditor1->Strings->Add("Поле1=Значение1");

ValueListEditor1->Strings->Add("Поле2=Значение2");

ValueListEditor1->Strings->Add("Поле3=Значение3");

TStringList *ListOfStates = new TStringList;

ListOfStates->Add("Значение1");

ListOfStates->Add("Значение2");

ListOfStates->Add("Значение3");

ValueListEditor1->ItemProps[1]->PickList = ListOfStates;

}

ValueList->ItemProps[i]->EditStyle=esEllipsis – выбор элемента кнопкой с многоточием:

Обработка щелчка на кнопке с многоточием:

void __fastcall TForm1::ValueListEditor1EditButtonClick(TObject *Sender)

{

String mas[]={“элемент1 ”, “элемент2”,… “элемент n”};

for (int i=0; i<n; i++)

ValueListEditor1->Values[“имя поля”]->Add(mas[random(n)]);

Memo1->Lines=Values;

}

void __fastcall TForm1::ValueListEditor1EditButtonClick(TObject *Sender)

{

if( OpenDialog1->Execute() )

ValueListEditor1->Values["Имя поля"] = OpenDialog1->FileName;

}

4.2 Задание

Создать приложение для формирования файла анкетных данных пользователя. Характер анкетных данных и наименования полей ввода выбрать самостоятельно. Сохранение данных в виде текстового файла должно быть выполнено в режиме диалога с использованием компонентов DriveListBox, FileListBox. Заполнение полей ввода организовать с использованием MaskEdit, ListBox, ValueListEditor и др. В приложении использовать меню, созданное на базе TActionManager.

4.3 Требования к оформлению отчета

Отчет должен содержать: титульный лит; тему и цель работы; собственно задание; постановку задачи; текст программы и результаты работы.