Студопедия — Примеры работы ListBox
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Примеры работы ListBox






 

Добавление текста в список из элемента Edit:

ListBox1.Items.Add(Edit1.Text);

Получение номера позиции добавленного элемента

pos:=listbox1.Items.Add(Edit1.Text);

Получение позиции текущего выбранного элемента в списке:

i:=ListBox1.ItemIndex;

Получение имени текущего выбранного элемента в списке:

ShowMessage(Listbox1.Items[ListBox1.ItemIndex]);

Вставить текст из элемента Edit в список в позицию n:

ListBox1.Items.Insert(n, Edit1.Text);

Выбрать первый элемент списка:

ListBox1.ItemIndex:=0;

Удалить первый элемент списка:

listbox1.Items.Delete(0);

Получить количество элементов в списке:

label1.Caption:=inttostr(listbox1.Items.Capacity);

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

listbox1.Items.SaveToFile('file.txt');

Загрузить список из файла:

Listbox1.Items.LoadFromFile('file.txt');

Получить имя выбранного элемента:

 

В обработчике событий OnClick компонета ListBox1 запишем следующее:

http://www.delphicode.org/code/listboxcode.htm

procedure TForm1.ListBox1Click(Sender: TObject);

var

ItemName:string;

begin

ItemName:=listbox1.items[listbox1.itemindex];

end;

Пример компонентов, рассмотренных в данном разделе и обеспечивающих выбор из списка, приведен на рис. 3.10.

Рис. 3.10 Пример компонентов выбора из списков

 

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

Основное свойство обоих компонентов, содержащее список строк, — Items, имеющее рассмотренный ранее тип TStrings. Заполнить его во время проектирования можно, нажав кнопку с многоточием около этого свойства в окне Инспектора Объектов. Во время выполнения работать с этим свойством можно, пользуясь свойствами и методами класса TStrings (см. раздел 3.3.4) — Clear, Add и другими.

В компоненте ListBox имеется свойство MultiSelect, разрешающее пользователю множественный выбор в списке (на рис. 3.10 это свойство установлено в true в среднем верхнем списке). Если MultiSelect = false (значение по умолчанию), то пользователь может выбрать только один элемент списка. В этом случае можно узнать индекс выбранной строки из свойства ItemIndex, доступного только во время выполнения. Если ни одна строка не выбрана, то ItemIndex = -1. Начальное значение ItemIndex невозможно задать во время проектирования. По умолчанию ItemIndex = -1. Это означает, что ни один элемент списка не выбран. Если вы хотите задать этому свойству какое-то другое значение, т.е. установить выбор по умолчанию, который будет показан в момент начала работы приложения, то сделать это можно, например, в обработчике события OnCreate формы, введя в него оператор вида

ListBox1.ItemIndex:=0;

 

Если допускается множественный выбор (MultiSelect = true), то значение ItemIndex соответствует тому элементу списка, который находится в фокусе. При множественном выборе проверить, выбран ли данный элемент, можно проверив свойство Selected[Index: Integer] типа Boolean.

 

На способ множественного выбора при MultiSelect = true влияет еще свойство ExtendedSelect. Если ExtendedSelect = true, то пользователь может выделить интервал элементов, выделив один из них, затем нажав клавишу Shift и переведя курсор к другому элементу. Выделить не прилегающие друг к другу элементы пользователь может, если будет удерживать во время выбора нажатой клавишу Ctrl. Если же ExtendedSelect = false, то клавиши Shift и Ctrl при выборе не работают.

 

Свойство Columns определяет число столбцов, в которых будет отображаться список, если он не помещается целиком в окне компонента ListBox (в среднем верхнем списке на рис. 3.10 свойство Columns равно 2).

 

Свойство Sorted позволяет упорядочить список по алфавиту. При Sorted = true новые строки в список добавляются не в конец, а по алфавиту.

 

Свойство Style, установленное в lbStandard (значение по умолчанию) соответствует списку строк. Другие значения Style позволяют отображать в списке не только текст, но и изображения.

 

Имеется еще один компонент, очень похожий на ListBox — это список с индикаторами CheckListBox. Выглядит он так же, как ListBox (средний нижний список на рис. 3.10), но около каждой строки имеется индикатор, который пользователь может переключать. Индикаторы можно переключать и программно, если список используется для вывода данных и необходимо в нем отметить какую-то характеристику каждого объекта, например, наличие товара данного наименования на складе.

 

Все свойства, характеризующие компонент CheckListBox как список, аналогичны ListBox, за исключением свойств, определяющих множественный выбор. Эти свойства компоненту CheckListBox не нужны, поскольку в нем множественный выбор можно осуществлять установкой индикаторов. Свойства компонента CheckListBox, связанные с индикаторами, будут рассмотрены в разделе 5.5.

 

Рассмотрим теперь компонент ComboBox. Стиль изображения этого компонента определяется свойством Style, которое может принимать следующие основные значения: csDropDown Выпадающий список со строками одинаковой высоты и с окном редактирования, позволяющим пользователю вводить или редактировать текст (правый список на рис. 3.10).

csSimple Развернутый список со строками одинаковой высоты и с окном редактирования, позволяющим пользователю вводить или редактировать текст (левый нижний список на рис. 3.10).

csDropDownList Выпадающий список со строками одинаковой высоты, не содержащий окна редактирования.

 

 

Выбор пользователя или введенный им текст можно определить по значению свойства Text. Если же надо определить индекс выбранного пользователем элемента списка, то можно воспользоваться обсуждавшимся в компоненте ListBox свойством ItemIndex. Все сказанное выше об ItemIndex и о задании его значения по умолчанию справедливо и для компонента ComboBox. Причем для ComboBox задание начального значения ItemIndex еще актуальнее, чем для ListBox. Если начальное значение не задано, то в момент запуска приложения пользователь не увидит в окне компонента одно из возможных значений списка и, вероятнее всего, не очень поймет, что с этим окном надо делать.

 

Если в окне проводилось редактирование данных, то ItemIndex = -1. По этому признаку можно определить, что редактирование проводилось.

 

Свойство MaxLength определяет максимальное число символов, которые пользователь может ввести в окно редактирования.

 

Если MaxLength = 0, то число вводимых символов не ограничено.

 

Как и в компоненте ListBox, свойство Sorted позволяет упорядочить список по алфавиту. При Sorted = true новые строки в список добавляются не в конец, а по алфавиту.

ListBox — для работы с простым списком в Delphi

 

Список представляет собой упорядоченную совокупность взаимосвязанных элементов, являющихся текстовыми строками. Списки широко применяются в MS Office, например, для отображения информации о перечне шрифтов или способах их начертания.

 

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

Сейчас мы рассмотрим простой список (ListBox)

 

 

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

Cвойство Columns

 

 

Если количество строк больше, чем их может поместиться в видимой области списка, то у области отображения появляется полоса прокрутки. Ориентация полосы прокрутки, а также число столбцов, которые одновременно видны в области списка, зависят от свойства Columns типа Integer. По умолчанию свойство имеет значение 0. Это означает, что все элементы списка расположены в одном столбце, и при необходимости автоматически появляется или исчезает вертикальная полоса прокрутки.

 

Если свойство Сolumns имеет значение, большее или равное 1, то в области списка всегда присутствует горизонтальная полоса прокрутки, а элементы разбиваются на такое число столбцов, чтобы можно было, прокручивая список по горизонтали, просмотреть все его элементы. При этом в видимой области списка отображается число столбцов, равное значению свойства Сolumns.

 

 

Так, на скриншоте приведены два списка, содержащие по 10 слов. Для левого списка значение свойства Сolumns равно 2, и в списке одновременно видны 2 столбца, для правого списка свойство Сolumns имеет значение 3, поэтому отображены все 3 столбца.

 

Иногда требуется, чтобы в списке одновременно отображались и вертикальная, и горизонтальная полосы прокрутки. В этом случае нужно задать свойству Сolumns нулевое значение, тогда вертикальная полоса прокрутки будет появляться по мере надобности. Для отображения горизонтальной полосы прокрутки следует послать списку сообщение LB_setHorizontalExtent. Третьим параметром сообщения является максимальное значение полосы прокрутки в пикселах. Если задать это значение заведомо большим, чем размер списка ListBox, то горизонтальная полоса прокрутки будет отображаться всегда. Четвертый параметр сообщения в этом случае равен нулю.

 

Если горизонтальная полоса прокрутки не нужна, то можно послать еще одно сообщение, указав в качестве максимального размера значение, равное нулю.

 

Приведем пример списка ListBox1 с двумя полосами прокрутки:Пример списка ListBox

 

procedure TForm1.FormCreate(Sender: ТОbject);

begin ListBox1.Columns:= 0;

SendMessage(ListBox1.Handle, LB_SetHorizontalExtent, 1000, 0);

end;

 

Cвойство TopIndex

 

 

При работе со списком программист может управлять номером элемента, который в видимой области списка отображается верхним. Эта возможность обеспечивается свойством TopIndex типа integer, доступным на этапе выполнения приложения. Так, в приведенной далее процедуре в списке ListBox1 верхним отображается элемент, номер которого задает реверсивный счетчик upDown1:Свойство TopIndex

 

procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);

begin

ListBox1.TopIndex:= UpDown1.Position;

end;

 

Cвойство Style

 

 

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

lbStandard (стандартный стиль) — по умолчанию;

lbOwnerDrawFixed (список с элементами фиксированной высоты, устанавливаемой свойством ItemHeight);

lbOwnerDrawVariable (список с элементами, которые могут иметь разную высоту).

 

Если стиль списка отличен от значения lbStandard, то за прорисовку элементов списка отвечает программист. Для этих целей используются графические возможности Delphi.

Cвойство BorderStyle

 

 

Список может иметь обычную рамку или не иметь рамки вообще. Наличие рамки определяет свойство BorderStyle типа TBorderStyle, принимающее два возможных значения:

bsNone (рамки нет);

bsSingle (рамка есть) — по умолчанию.

 







Дата добавления: 2015-09-07; просмотров: 2289. Нарушение авторских прав; Мы поможем в написании вашей работы!



Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

СИНТАКСИЧЕСКАЯ РАБОТА В СИСТЕМЕ РАЗВИТИЯ РЕЧИ УЧАЩИХСЯ В языке различаются уровни — уровень слова (лексический), уровень словосочетания и предложения (синтаксический) и уровень Словосочетание в этом смысле может рассматриваться как переходное звено от лексического уровня к синтаксическому...

Плейотропное действие генов. Примеры. Плейотропное действие генов - это зависимость нескольких признаков от одного гена, то есть множественное действие одного гена...

Методика обучения письму и письменной речи на иностранном языке в средней школе. Различают письмо и письменную речь. Письмо – объект овладения графической и орфографической системами иностранного языка для фиксации языкового и речевого материала...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит...

Кран машиниста усл. № 394 – назначение и устройство Кран машиниста условный номер 394 предназначен для управления тормозами поезда...

Приложение Г: Особенности заполнение справки формы ву-45   После выполнения полного опробования тормозов, а так же после сокращенного, если предварительно на станции было произведено полное опробование тормозов состава от стационарной установки с автоматической регистрацией параметров или без...

Studopedia.info - Студопедия - 2014-2024 год . (0.043 сек.) русская версия | украинская версия