Элементы работы со списками


В 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 в текстовом файле.