Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы_Инф_Анг.doc
Скачиваний:
27
Добавлен:
20.11.2019
Размер:
5.19 Mб
Скачать

Лабораторная работа № 3 «Класс tStrings. Компоненты для отображения списка строк ListBox, ComboBox»

TStrings – это абстрактный класс. Он предназначен для хранения в памяти списка строк (набора строк). TStrings используется в таких компонентах как Memo (многострочный редактор текста), ListBox и ComboBox (элементы управления для отображения списка строк). Например, компонент Memo имеет свойство Lines, имеющее своим типом класс TStrings. В компонентах ListBox и ComboBox таким свойством является свойство Items. Рассмотрим элементы класса TStrings:

Элемент

Описание

property Count:integer

Количество хранимых строк

property Strings[Index: integer]:String

Свойство-массив. Организует доступ к строке по ее индексу

function Add(const S:String):integer

Добавляет строку в конец списка, и возвращает ее индекс

procedure Append(const S:String)

Добавляет строку в конец списка

procedure AddStrings(Strings:TStrings)

Добавляет строки из другого списка в конец данного списка

procedure Assign(Source:TPersistent)

Копирует содержимое другого списка в данный

procedure Clear

Удаляет все строки из списка. Count=0.

procedure Delete(Index: integer)

Удаляет строку по заданному индексу

function Equals(Strings:TStrings):Boolean

Выясняет, совпадает ли полностью данный список строк с другим списком строк

procedure Exchange(Index1:integer;Index2:integer)

Меняет местами строки по их заданным индексам

function IndexOf(const S:String):integer

Выясняет индекс заданной строки

procedure Insert(Index:integer; const S:String)

Вставляет строку S перед строкой с индексом Index

procedure LoadFromFile(const FileName:string)

Загрузка строк из текстового файла

procedure SaveToFile(const FileName:string)

Сохранение строк в текстовый файл

Класс TStrings является абстрактным, так как он содержит абстрактные (нереализованные) методы Clear, Delete, Insert. В компонентах Memo, ListBox, ComboBox – встроен механизм управления свойствами типа TStrings. Однако если вы хотите хранить список строк без использования специальных компонентов, вы можете воспользоваться классом TStringList. Этот класс является потомком класса TStrings и в нем переопределены все абстрактные элементы класса TStrings.

Примечание. В Delphi элементы любого списка индексируются с 0. Схематически список строк можно представить следующим образом:

0 строка1

1 строка2

2 строка3

3 строка4

4 строка5

Количество строк равно в данном случае 5. То есть свойство Count=5.

Указания по решению задачи

Создать приложение с использованием указанного в задаче компонента. Если в задании не указано на какое событие необходимо осуществить действие, то можно использовать любое событие рассматриваемого компонента или использовать дополнительные компоненты (например, компонент Button).

Пример решения задачи

Составьте программу, в которой при выборе элемента в выпадающем списке ComboBox, заголовок главной формы будет изменен на строку, являющуюся значением выбранного элемента списка ComboBox.

Создадим новое приложение. Выберем меню File > New > Application. Обратимся к вкладке Standard палитры компонентов Delphi, и поместим на форму компонент ComboBox (Рис. 1).

Рис. 1. Редактируемая форма. Компонент ComboBox1.

Заполним список несколькими значениями. Вызовем редактор свойства Items компонента ComboBox1 (Рис. 2).

Рис. 11. Редактор свойства Items компонента ComboBox1.

Установим в свойство ItemIndex компонента ComboBox1 значение 0. Это позволит списку изначально отображать первый элемент (Рис. 12).

Рис. 12. Редактируемая форма. Компонент ComboBox1.

При выборе элемента выпадающего списка происходит событие OnSelect этого компонента. Создадим обработчик события OnSelect компонента ComboBox1. В обработчике компонента будем изменять заголовок формы на текст выделенного в списке элемента:

procedure TForm1.ComboBox1Select(Sender: TObject);

begin

Form1.Caption:=ComboBox1.Text;

end;

Приложение. Некоторые функции модуля SysUtils.

Функция

Описание

function IntToStr(Value:integer):string

Переводит целое число в строку

function StrToInt(Value: string): integer

Переводит строку в целое число

function StrComp(Str1:PAnsiChar; Str2:PAnsiChar):integer

Сравнивает две строки. Возвращает 0 если строки совпадают. Если вы используете переменные типа string, то в функцию необходимо помещать преобразованный тип. Например:

var s1,s2:string;

if StrComp(PAnsiChar(s1),

PAnsiChar(s2))=0 then

function Trim(const S:String):string

Функция возвращает строку равную строке S, но с удаленными концевыми пробелами

Вариант 1

Составьте программу, в которой при выборе элемента в выпадающем списке ComboBox, заголовок главной формы будет изменен на строку, являющуюся значением выбранного элемента списка ComboBox.

Вариант 2

Составьте программу, которая при отпускании правой кнопки мыши над списком ListBox, будет выдавать информационное сообщение, содержащее индекс выделенного элемента этого списка

Вариант 3

Составьте программу, в которой при нажатии левой кнопки мыши элементы списка ListBox сортируются по алфавиту

Вариант 4

Составьте программу, которая выясняет, совпадает ли содержимое двух списков строк, представленных компонентами ListBox и ComboBox

Вариант 5

Составьте программу, выясняющую, сколько элементов списка ListBox содержат символ «V»

Вариант 6

Составьте программу, удаляющую из списка ListBox выделенный элемент по нажатию правой кнопки мыши над ним.

Вариант 7

Составьте программу, которая при выборе элемента из списка ComboBox, будет выяснять, существует ли этот элемент в списке ListBox.

Вариант 8

Составьте программу, организующую добавление и удаление элементов списка ListBox

Вариант 9

Составьте программу, выясняющую все ли элементы списка ComboBox различны

Вариант 10

Составьте программу, поиска в списке заданного слова X

Вариант 11

Составьте программу, утраивающую каждый третий символ в каждом элементе списка ListBox

Вариант 12

Составьте программу, удаляющую из списка ListBox те элементы, что стоят на четных местах

Вариант 13

Составьте программу, удаляющую те элементы списка ListBox, что стоят на нечетных местах

Вариант 14

Составьте программу, в которой при выборе элементов, представляющих числовые значения, в списке ComboBox, в соответствие с выбранным значением (числом), будет изменяться ширина главной формы.

Вариант 15

Составьте программу, удаляющую из списка ListBox те элементы, что не встречаются в списке ComboBox

Вариант 16

Составьте программу, выясняющую, сколько раз в списке ListBox встречается его последний элемент

Вариант 17

Составьте программу, в которой, при выборе элемента в списке ListBox в компонент Memo будет добавляться его значение.

Вариант 18

Составьте программу, загружающую из файла элементы списка ComboBox.

Вариант 19

Составьте программу, вычеркивающую из списков ListBox и ComboBox те элементы, что встречаются в них одновременно

Вариант 20

Составьте программу, в которой при отпускании правой кнопки мыши над списком ListBox в него будет заноситься элемент, значение которого есть текст компонента Edit

Вариант 21

Составьте программу, организующую добавление и удаление элементов списка ListBox

Вариант 22

Составьте программу, удаляющую те элементы списка ListBox, что не встречаются в ComboBox

Вариант 23

Составьте программу, выясняющую, все элементы списка ComboBox одинаковы

Вариант 24

Составьте программу, позволяющую при выборе элемента списка ComboBox добавлять элемент с таким же значением в список ListBox

Вариант 25

Составьте программу, позволяющую мышью переносить элемент из одного списка ListBox в другой список ListBox

Вариант 26

Составьте программу, которая позволяет записывать индексы одновременно выделенных нескольких элементов списка ListBox в редактор текста Memo, при двойном щелчке на нем.

Вариант 27

Составьте программу, выясняющую, сколько элементов списка ListBox, находятся в выделенном состоянии. Если не один, то записать значения выделенных элементов в список ComboBox

Вариант 28

Составьте программу, определяющую, сколько в списке ListBox повторяющихся строк

Вариант 29

Составьте программу, в которой в зависимости от выбранного элемента списка ComboBox изменяется текст всплывающей подсказки редактора текста Edit

Вариант 30

Составьте программу, удаляющую из списка ListBox те элементы, что не встречаются в списке ComboBox

Вариант 31

Составьте программу, выясняющую, какой из элементов списка ListBox имеет максимальную длину

Вариант 32

Составьте программу поиска чаще всего встречающегося элемента списка ComboBox

Вариант 33

Составьте программу, выясняющую, совпадают ли первый и последний элементы списка ComboBox

Вариант 34

Составьте программу, заменяющую каждый элемент списка ListBox, имеющий четный индекс, символом «0»

Вариант 35

Составьте программу, позволяющую добавлять, удалять элементы списка ListBox, и сохранять их в текстовый файл

Вариант 36

Составьте программу, добавляющую в список ComboBox те элементы списка ListBox, что имеют нечетный индекс

Вариант 37

Составьте программу, выясняющую, сколько элементов списка ListBox встречаются в списке ComboBox

Вариант 38

Составьте программу, в которой при двойном щелчке мышью на компоненте ListBox, все его элементы переносятся в список ComboBox

Вариант 39

Составьте программу, позволяющую при выборе элемента списка ComboBox, изменять текст в редакторе Edit на текст выбранного элемента списка

Вариант 40

Составьте программу вставки после каждого элемента списка ListBox строки «XXX»