Работа со списками (компоненты TListBox, TComboBox закладки Standard). Работа с компонентами TRadioGroup, TCheckBox, TGroupBox, TPanel закладки Standard

Страницы работы

Содержание работы

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

Тема: Работа со списками (компоненты TListBox, TComboBox закладки Standard).

           Работа с компонентами TRadioGroup, TCheckBox, TGroupBox, TPanel закладки  Standard

Задание.

1.  Создайте визуальную часть приложения, как показано на рисунке (или произвольным образом, сохранив в наличии все указанные компоненты).  У компонентов TPanel установите значения свойства BevelOuter (выпуклая, утопленная).  У компонентов TRadioGroup, TCheckBox и TComboBox установите начальные значения свойств ItemIndex, Checked и Text соответственно (см. рисунок).

 


  

TGroupBox

 

TCheckBox

 

TListBox

 

TRadioGroup

 

TMemo

 
 



2.  Создайте главное меню следующего вида:

По команде Открыть: должно появляться окно диалога открытия файла (используем OpenDialog), содержимое выбранного файл загружается в Memo1.

По команде Сохранить: содержимое Раздела 2 сохраняется в выбранном файле (используем SaveDialog). Для этого надо последовательно перезаписать все строки из ListBox2 в файл. Для обращения к строкам ListBox используется: ListBox1.Items. Strings[номер строки].

По команде Выход закрывается приложение.

По команде ? выдается информация об авторах данного программного продукта.

3.  Создайте обработчики события “Нажатие на кнопку” для кнопок Сброс, Выход.

По кнопке Сброс – возврат  формы в исходное состояние: очистка рабочей области (Memo1), области поиска, Раздела 1 и Раздела 2, а также установка CheckBox, RadioGroup и ComboBox в начальное состояние.

По кнопке Выход – выход из программы.

4.  По кнопке Начать: содержимое Memo1 разбивается на отдельные слова (признак окончания очередного слова  - встреча пробела), которые последовательно помещаются  в Раздел 1  в зависимости от значения радиокнопок.

Один из способов реализации:

- из Memo1 последовательно считываются строки;

- очередная считанная строка делится на слова;

- каждое слово проверяется на соответствие критерию выбора (определяется значениями радиокнопок в RadioGroup): если соответствует -помещается в Раздел 1 (ListBox1). Чтобы поместить в ListBox данные (STRING) воспользуемся ListBox1.Items.Add(STRING).

5.  Реализовать:

- перемещение данных (полное или только выделенных строк) из одного Раздела в другой,

- удаление выделенных строк из Разделов 1 и 2,

- добавление данных в Раздел 2.

5.1. Для перемещения строк из одного Раздела в другой (полное) необходимо вначале добавить все элементы из одного ListBox в другой (с помощью метода Add), а затем очистить ListBox (Clear), из которого мы производили перемещение. Чтобы узнать количество элементов в ListBox, можно воспользоваться  ListBox1.Items.Count).

Для возможности выделять несколько строк в списке TListBox, установите его свойство MultiSelect = True.

5.2. Для перемещения строк из одного Раздела в другой (частично), вначале необходимо найти выделенную строку (ListBox1.Selected[номер выделенной строки] – true, если строка выделена). После того, как строка найдена,  добавляем ее в другой раздел. Затем эту строку удаляем (используем ListBox1.Items.Delete(номер удаляемой строки)).

5.3. Удаление выделенных строк из Раздела1(2) или одновременно из того и другого производится аналогично перемещению строк (частичное). Т.е. вначале мы ищем выделенные строки (Selected), затем удаляем найденную строку (Delete). После этого переходим в другой раздел и проделываем то же самое. Предварительно (перед поиском) надо делать проверку наличия данных в Разделе (если пустой – проверка другого раздела …)


5.4. Для добавления данных в Раздел1(2) создадим модальную форму следующего вида.

По кнопке Добавить: - данная форма закрывается;

- на главной форме в список выбранного Раздела помещается введенный текст.

По кнопке Отмена: данная форма закрывается.

6.  Компонентам ComboBox следует присвоить значения:

 


Алфавиту (по возрастанию)

Алфавиту (по убыванию)

Длине слова (по возрастанию)

Длине слова (по убыванию)

7.  Создайте обработчики для кнопок Сортировать, Очистить.

Очистить – очищает Раздел1(2) (т.е. ListBox1(2)). Чтобы произвести эту операцию используйте метод Clear.

Сортировать – производит сортировку данных, находящихся в Разделе1(2) по заданному критерию. Для организации сортировки необходимо сначала определить тип сортировки (т.е. по алфавиту (по возрастанию или убыванию) или по длине слов (по возрастанию или убыванию). Для этого используется проверка значения ComboBox1.ItemIndex. Затем произвести сортировку данных любым известным способом сортировки. Для обращения к строкам ListBox используется: ListBox1.Items. Strings[номер строки].

Примечание: во время сортировки курсор мыши должен изменять свою форму (становиться песочными часами). Для этого используйте переменную целого типа, н-р Save_Cursor, которая будет сохранять текущее значение свойства Cursor:

Save_Cursor:= Screen.Cursor;

Затем измените значение этого свойства:

Screen.Cursor:=crHourGlass;

По окончании сортировки курсор должен восстанавливать свой исходный вид.

8.  Реализовать поиск данных.

Для поиска необходимо вначале ввести ключ поиска (Edit1), очистить ListBox3, затем определить область поиска (т.е. Раздел1, Раздел2 или оба, для этого используйте свойство Checked компонента CheckBox). После этого начинаем последовательно просматривать элементы соответствующего раздела (ListBox….Items. Strings). При нахождение нужного  элемента добавляем его в ListBox3.

Для определения наличия заданного ключа поиска в текущей строке, можно использовать функцию Pos:

Function Pos(SubStr: string; S: string): integer;

- возвращает номер первого символа подстроки SubStr в строке S. Если подстрока не найдена – возвращает ноль.

Пример работы программы.

Похожие материалы

Информация о работе