Элементы работы со списками
В Delphi для работы со списками определены 2 элемента - ListBox и ComboBox. Первый элемент называется списком, а второй – элемент со списком.
Приведем основные свойства и методы этих элементов.
Таблица 2.8.
№ | Свойство | Назначение | № | Свойство | Назначение |
1. | listbox1.Items.Add(элемент) | Добавление элемента в список | 6. | listbox1.Sorted:=true | Без сортировки |
2. | listbox1.ItemIndex | Индекс выбранного элемента | 7. | listbox1.Columns:=n | Назначить n (целое) колонок. |
3. | listbox1.Clear | Очистка списка | 8. | listbox1.Items[k] | Обращение к k-му элементу |
4. | listbox1.Style | Установка стиля элемента | 9. | listbox1.Items.strings[k] | Обращение к k-ой строке |
5. | listbox1.Sorted:=false | Cортировка | 10. | Combobox1.text | Обращение к выбранному элементу |
Все перечисленные свойства для элемента listbox являются свойствами и элемента Combobox.
Упражнение №5.Заполните элементы listbox1, combobox1 списком учащихся класса, listbox2 - списком экранных шрифтов. Программируйте выбор фамилии из первых 2 элементов. Двойной щелчок мыши по элементам списка listbox2 устанавливает шрифт для listbox1.
unit spiski;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
ComboBox1: TComboBox;
ListBox1: TListBox;
ListBox2: TListBox;
procedure FormCreate(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
procedure ComboBox1Click(Sender: TObject);
procedure ListBox2DblClick(Sender: TObject);
private
{Private declarations}
public
{Public declarations}
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
{процедура заполнения списков}
var fam: array[1..10] of string;
i:byte;
begin
fam[1]:='Иванов И.И.';
fam[2]:='Петров И.П.';
fam[3]:='Сидоров С.И.';
fam[4]:='Сидоренко Н.И.';
fam[5]:='Сацук Н.Н.';
fam[6]:='Андреев Н.А.';
{заполнение втрого списка экранными шрифтами}
listbox2.items:=Screen.Fonts;
{заполнение listbox1 и combobox1 фамилиями учащися}
for i:=1 to 6 do
begin
listbox1.Items.Add(fam[i]);
combobox1.Items.Add(fam[i]);
end;
combobox1.Text:=fam[1];
end;
procedure TForm1.ListBox1Click(Sender: TObject);
{показ выбранного элемента в списке listbox1}
var i:byte;
begin
i:=listbox1.ItemIndex;
showmessage(listbox1.Items.strings[i]);
end;
procedure TForm1.ComboBox1Click(Sender: TObject);
{показ выбранного элемента в списке combobox1}
begin
showmessage(combobox1.text);
end;
procedure TForm1.ListBox2DblClick(Sender: TObject);
{процедура установки шрифта для элемента listbox1}
var k:byte;
begin
k:=listbox2.itemindex;
listbox1.Font.Name:=listbox2.items[k];
end;
end.
Посмотрите на следующий кадр. Как видно, во втором списке отражены имена шрифтов, установленных на данном компьютере. Это удалось с помощью строки listbox2.items:=Screen.Fonts в процедуре заполнения списков.
Рис.34.
Вопросы и упражнения.
1. Добавьте список выбора размера букв для шрифта.
2. Напишите программу, которая выдает средний бал успеваемости учащегося, выбор фамилии производится двойным щелчком из списка.
3. Напишите процедуру, которая размещает в Listbox список из текстового файла. Обратите внимание на следующие подсказки:
– var f:textfile -описание переменной типа текстовый файл;
– assignfile(f,'имя_физического_файла')- назначение файловой переменной имени физического файла;
– rewrite(f)- открыть файл для записи;
– closefile(f)- закрытие файла.
4. Изучите свойства Canvas (холст) для элементов Listbox и Combobox.
5. Сохраните строки элемента listbox1 в текстовом файле.