77969

Создание и работа со списками

Лекция

Информатика, кибернетика и программирование

Компонент класса TListBox представляет собой стандартный для Windows список выбора с помощью которого пользователь может выбрать один или несколько элементов выбора. В компоненте предусмотрена возможность программной прорисовки элементов поэтому список может содержать не только строки но и произвольные изображения. Если MultiSelect=Flse совпадает с индексом выделенного элемента TBorderStyle: перечисл Определяет стиль рамки: bsNone нет рамки; bssingle рамка толщиной 1 пиксель Count: Integer; Содержит количество строк в компоненте...

Русский

2015-02-05

80 KB

2 чел.

Создание и работа со списками

Для создания списков существуют 2 компоненты ListBox и ComboBox.

Компонент класса TListBox представляет собой стандартный для Windows список выбора, с помощью которого пользователь может выбрать один или несколько элементов выбора. В компоненте предусмотрена возможность программной прорисовки элементов, поэтому список может содержать не только строки, но и произвольные изображения.Свойства и методы компоненты ListBox (таблица 11):

Таблица 11 -  Свойства и методы компоненты ListBox

Название

Назначение

Свойства

Name:string

Наименование компоненты (по умолчанию ListBox1)

Items: TStrings;

Содержит набор строк, показываемых в компоненте

Itemlndex: Integer;

Содержит индекс сфокусированного элемента. Если MultiSelect=False, совпадает с индексом выделенного элемента

TBorderStyle:

перечисл

Определяет стиль рамки: bsNone - нет рамки; bssingle - рамка толщиной 1 пиксель

Count:

Integer;

Содержит количество строк в компоненте

MultiSelect: Boolean

Разрешает/отменяет выбор нескольких элементов

SelCount:

Integer

Содержит количество выбранных элементов

Selected[X: Integer] : Boolean;

Содержит признак выбора для элемента с индексом х (первый элемент имеет индекс 0)

Sorted: Boolean

Разрешает/отменяет сортировку строк в алфавитном порядке

Методы

Count

Определяет количество элементов  в списке

Clear

Удаляет весь список

Add

Добавляет новый элемент  в список

Delete

Удаляет определённый элемент  из списка

Insert

Вставляет новый элемент в список

LoadFromFile :

TString.

Для загрузки списка из файла

SaveToFile :

TString.

Для сохранения списка в файле

Комбинированный список TComboBox представляет собой комбинацию списка TListBox и редактора TEdit, и поэтому большинство его свойств и методов заимствованы у этих компонентов. Существуют пять модификаций компонента, определяемые его свойством style: csSimple, csDropDown, csDropDownList, csOwnerDrawFixed И csOwner DrawVariabie. В первом случае список всегда раскрыт, в остальных он раскрывается после нажатия кнопки справа от редактора (рис. 16). В модификации csDropDownList редактор работает в режиме отображения выбора и его нельзя использовать для ввода новой строки (в других модификациях это возможно). Модификации csOwnerDrawFixed и csOwnerDrawVariable используются программной прорисовки элементов списка. Используемые для этого свойства и методы полностью совпадают со свойствами и методами TListBox аналогичного назначения.

Фактически “своими” у компонента являются лишь свойства и события, связанные с раскрытием списка:

Рис. 16 -  Примеры комбинированных списков

Свойство DropDownCount определяет количество элементов списка, появление которых еще не приводит к необходимости прокрутки списка. По умолчанию это свойство имеет значение 8: если в списке указано 9 и более элементов (т. е. больше, чем содержит DropDownCount), при его раскрытии к окну будет добавлена полоса прокрутки. Свойство DroppedDown определяет, раскрыт ли в данный момент список. Это свойство доступно также для записи, что позволяет программно управлять состоянием списка. Событие OnDropDown происходит при изменении состояния списка.

Наполнение списка ведется методами Add, Append, Insert и т. п. его свойства Items класса TStrings.

Пример 1:  По фамилии в списке вывести его должность.

Поместите  на форму компоненты: 3 Label, ListBox и измените значения их свойств:

Свойство Caption у комконенты Label1 – ‘Список сотрудников’;

Свойство Caption у комконенты Label2 – ‘ ’;

Свойство Caption у комконенты Label3 – ‘Должность’;

Расположите компоненты как показано на рисунке 17 и введите текст программы для событий OnCreate для компоненты Form1 и OnClick для компоненты ListBox:

Рис. 17 -  Пример приложения

procedure TForm1.FormCreate(Sender: TObject);

begin

 ListBox1.Items[0]:='Иванов';

 ListBox1.Items[1]:='Петров';

 ListBox1.Items[2]:='Сидоров';

end;

procedure TForm1.ListBox1Click(Sender: TObject);

var i:byte;

begin

i:= ListBox1.ItemIndex;  // номер выбранного элемента

case i of

0: Label2.Caption:='директор';

1: Label2.Caption:='менеджер';

2: Label2.Caption:='программист';

end;

end;

Пример 2:  Просмотреть или добавить в список нового сотрудника.

Поместите  на форму компоненты: 2 Label, ComboBox, Button, Edit и измените значения их свойств:

Свойство Caption у комконенты Label1 – ‘Список сотрудников’;

Свойство Caption у комконенты Label2 – ‘Введите сотрудника’;

Свойство Caption у комконенты Button1 – ‘Добавить в список’;

Расположите компоненты как показано на рисунке 18  и введите текст программы для событий OnClick для компоненты Button1:

Рис. 18 -  Пример приложения

procedure TForm1.Button1Click(Sender: TObject);

begin

ComboBox1.Items.Add(Edit1.Text);

end;


 

А также другие работы, которые могут Вас заинтересовать

15513. Етапи входження України до Великого князівсьва Литовського 22.72 KB
  Приєднання українських земель до Великого князівства Литовського Перервана традиція літописання зумовила наявність білих плям в історії польськолитовської доби. Через це частина істориків період існування Великого князівства Литовського до Люблінської унії 1569 р.
15514. Проектирование структуры и содержания дистанционного курса «Использование аудиоинформации при создании цифровых образовательных ресурсов» 1.92 MB
  КУРСОВАЯ РАБОТА Проектирование структуры и содержания дистанционного курса Использование аудиоинформации при создании цифровых образовательных ресурсов Содержание Введение 1. Теоретические основы проектирования дистанционных курсо
15515. Київська митрополія і Флорентійська унія 39.81 KB
  Відокремлення московської митрополії Після входження Києва до ЛитовськоРуської держави відбувається його поступове відродження як духовного та релігійного центру України. В той же час протягом ХIV поч.. ХV ст. у Києві та Москві періодично виникали ситуації коли одно...
15516. Кирило Розумовський 18.34 KB
  Війна мала два важливих наслідки. Поперше переконала російський уряд у неможливості вирішити свої південнозахідні проблеми без економічно сильної України з власним устроєм. Подруге ще раз показала українській громадськості життєву необхідність відновлення гетьманс...
15517. Кирило-Мефодіївське Братство 50 KB
  КирилоМефодіївське Братство Схожі матеріали Культурницький етап українського руху у Східній Україні в ХIХ столітті У 1834 р. цар Микола дозволив відкрити другий в Україні університет ім. св. Володимира в Києві. Засн...
15518. Реєстрове козацтво 16.67 KB
  Реєстрове козацтво Козацька старшина існувала у реєстровому козацькому війську що було створене у 1572 році. На чолі реєстрових козаків стояв гетьман якого обирали за погодженням з королівським урядом на загальній військовій раді. Першим гетьманом реєстрового війська
15519. Під владою Польщі. Зростання козацтва (друга пол. XVI - перша пол. XVII ст.) 19.53 KB
  Під владою Польщі. Зростання козацтва друга пол. XVI перша пол. XVII ст. антифеодальні виступи міщан. Між козаками селянами та міщанами уже сформувалися відносини спільності інтересів взаєморозуміння та взаємопідтримки. У 80х роках XVI ст. відбулося кілька локальних вист
15520. Колонізація після 1569 22.58 KB
  Наслідки Люблинської унії для України були величезні. Україна була розірвана: більша її частина перейшла до Польщі Галичина Холмщина Волинь Поділля Брацлавщина Київщина Підляшшя. За Великим Князівством Литовським залишилися білоруські землі по Вітебськ Оршу та Мс
15521. Конотопська битва або Соснівська битва (27 червня — 29 червня / 7 липня — 9 липня 1659 року) 21.53 KB
  Конотопська битва або Соснівська битва 27 червня 29 червня / 7 липня 9 липня 1659 року битва між військами Гетьмана Івана Виговського та Кримської Орди з одного боку і московським військом з іншого біля міста Конотопа сучасної Сумської області. Наслідки та значення Зв...