Компонент Delphi простой список – ListBox

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

Свойство в котором находится список строк это Items типа TString. На этапе проектирования, для его заполнения, необходимо нажать на кнопке с многоточием напротив этого свойства в окне Инспектора Объектов. В приложении поставить в любой обработчик (допустим событие кнопки)

ListBox1.Items.Add('Диван');
или
ListBox1.Items.Add(Edit1.Text); //     добавление будет из компонента Edit1.Text

Для полной очистки списка:

 ListBox1.Clear;

Чтобы удалить выделенный элемент:

ListBox1.DeleteSelected;

По умолчанию список состоит из одной колонки. И если список большой и не все элементы помещаются в нем автоматически справа появляется или исчезает вертикальная полоса прокрутки (первый и второй компонент ListBox на рисунке ниже).  Для того чтобы появилась горизонтальная полоса прокрутки необходимо свойству Columns типа  Integer поставить значение больше нуля. Третий компонент - Columns равен 1, второй 2.

Пример с компонентам ListBox

 Свойство Sorted равное true дает возможность расположить элементы в алфавитом порядке. За счет сортировки списка в алфавитом порядке будет легче увидеть необходимый элемент, особенно если список большой. Применив сортировку в Инспекторе Объектов отменить сортировку не удастся.

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

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

где ShowMessage() - простейшая функция вывода на экран текстовых сообщений, а ListBox1.ItemIndex - номер текущего элемента.

MultiSelect - свойство благодаря которому можно можно выбрать не 1 элемент, а более. Для этого ставим его равным TRUE. Щелкая мышью, при нажатой клавише CTRL, выбираем произвольные элементы. Если свойство ExtendedSelect равно TRUE,  удерживая клавишу SHIFT выделим непрерывный диапазон списка. Для определения выделен компонент или нет обратимся к свойству Selected. Выражение:

ListBox.Selected[3]

равно TRUE, если четвертый элемент в компоненте выделен (номера элементов начинаются с нуля).

ItemAtPos свойство, которое переводит координаты щелчка внутри списка в индекс элемента. Расположим на форме компоненты ListBox, Panel и Label согласно рисунку. Для компонента ListBox в обработчике отпускания кнопки мыши напишем следующий код.

procedure TForm1.ListBox1MouseUp(Sender:
TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  Point : TPoint;
  Nomer : Integer;
begin
  Point.X := X;
  Point.Y := Y;
  Nomer := ListBox1.ItemAtPos(Point, True);
  Label1.Caption := IntToStr(Nomer);
  Panel1.Caption := ListBox1.Items[ListBox1.ItemIndex];
end;

В переменной Nomer запишется индекс элемента и компонент Label1 выведет его. Надпись на Panel1 выведет текст элемента ListBox1.

Итог: был разобран компонент ListBox с его свойствами и методами.

Компонент Delphi простой список – ListBox: 5 комментариев

  1. Здравствуйте.
    У меня возник такой вопрос. Можноли, чтобы данные которые были вбиты через edit сохранились в программе.

  2. не совсем,вернее совсем не понял ,как заполнять окно ListBox
    потому что когда запускаю его в окно ничего не могу записать – нет ввода

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *