Компоненты Delphi страницы StandartКомпонент Delphi ListBox |
Уроки Delphi
1. Первая программа
2. Использование компонентов
3. События Delphi
4. Типы данных Delphi
5. Создание своих типов данных
6. Выражения и операторы
7. Работа с файлами в Delphi
8. Дополнительные формы
9. Подпрограммы в Delphi
10. Исключительные ситуации
11. Взаимодействие приложения с пользователем
12. Указатели в Delphi
13. Обзор компонентов
14. Работа со строками
15. Создание интерфейса
16. Графика в Delphi
17. Многопоточность в Delphi
18. Динамическое создание
компонентов Поиск по сайту Это важно:
Метод Application.ProcessMessages;
Это полезно:
Параметр Sender в обработчиках событий;
Бояться не надо |
Компонент Delphi ListBox это компонент, служащий для хранения и обработки текстовой информации. Каждая строка Delphi ListBox хранит строку данных в формате String.
Компонент ListBox - это массив строк. ListBox может загружать данные с диска, и сохранять информацию в файл. Также ListBox может сортировать строки. Доступ к строкам предоставляет свойство Items этого компонента. В соответствии с этим, вот как происходит обращение к строке с номером i: ListBox1.Items[i-1]; // Минус один, так как нумерация строк в компоненте начинается с нуля. Прежде всего рассмотрим методы добавления строк в компонент Delphi ListBox:
Методы добавления строк в компонент Delphi ListBoxПользователь может выделить строку, щёлкнув по ней мышкой. Номер выделенной строки возвращает свойство компонента ListBox.ItemIndex. То есть, получить текст выделенной строки можно так: S := ListBox1.Items[ListBox1.ItemIndex]; Не забывайте пользоваться оператором присоединения with. С его использованием это присваивание выглядит так:
with ListBox1 do При многократном использовании свойств компонента данная запись очень экономит силы. Кстати, оператор присоединения допускает работу с несколькими компонентами, которые нужно разделить запятой. Например, присваивание строки компонента ListBox ячейке таблицы StringGrid выглядит так:
with ListBox1, StringGrid1 do Для удаления строк из компонента применяется метод Delete. Удаление строки с номером i: ListBox1.Items.Delete(i); Чтобы при добавлении каждая строка была отсортирована (сортировка идёт только по возрастанию), нужно установить: ListBox1.Sorted := True; Также возможно установить это свойство на этапе конструирования в Инспекторе Объектов. К сожалению, компонент не обладает возможностью добавлять только уникальные данные. Один и тот же текст запишется несколько раз. Для реализации этой возможности приходится дополнительно применять невизуальный аналог компонента ListBox - объект StringList, обладающий такой возможностью:
procedure TForm1.Button1Click(Sender: TObject); Компонент ListBox автоматически добавит полосу прокрутки, если количество строк не помещается по высоте компонента. Высота каждой строки равна ItemHeight. Если нужно чтобы при добавлении новой строки полоса прокрутки точно не возникла, этот размер нужно добавить к высоте компонента. Но делать это нужно только начиная с определённого количества строк. Поэтому нужно делать проверку:
ListBox1.Items.Add('Новая_строка'); Но если высота компонента не нацело делится на высоту строки, то прокрутка всё равно возникнет. Поэтому нужно отнять единичку:
ListBox1.Items.Add('Новая_строка'); Однако на долю секунды полоса прокрутки всё-таки появляется. Поэтому сначала сделаем проверку, а затем уже будем добавлять строку. В этом случае уже нужно отнимать не 1, а 2:
with ListBox1 do
Обзор компонентов Delphi
В начало урока
Компонент Delphi ComboBox |
© 2023 Delphi-Manual.ru - Уроки Delphi начинающим с нуля |