Программирование списков в среде Delphi

Разделы: Информатика


Цель: Ознакомить учащихся с основными свойствами и методами создания списков при составлении программ в среде Delphi

Сегодня на занятии мы познакомимся с созданием и программированием списков.

Как вы понимаете, что такое список?

Под списком будем понимать упорядоченную последовательность текстовых строк.

Вопрос учителя: Ребята, а где в повседневной жизни вы встречались с понятием “СПИСОК”?

Учащиеся: В журнале список учащихся, список дел на текущую неделю в еженедельнике.

Давайте познакомимся с различными видами списков, используемых при составлении программ в среде Delphi.

Откройте файл C:\МОИ ДОКУМЕНТЫ\ПРИМЕР1\пример1.exe.

Программное обеспечение урока.

Вашему вниманию представлена демонстрация трех, наиболее часто используемых видов списков.

Листинг программы представлен ниже.

unit example1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls;

type

TForm1 = class(TForm)

ListBox1: TListBox;

ComboBox1: TComboBox;

Image1: TImage;

Label1: TLabel;

Label2: TLabel;

Image2: TImage;

Label3: TLabel;

ColorBox1: TColorBox;

procedure ListBox1Click(Sender: TObject);

procedure ComboBox1Change(Sender: TObject);

procedure ColorBox1Change(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ListBox1Click(Sender: TObject);

begin

case ListBox1.itemindex of

0:Image1.Picture.LoadFromFile('акула.bmp');

1:Image1.Picture.LoadFromFile('Дельфин.bmp');

2:Image1.Picture.LoadFromFile('Морская звезда.bmp');

3:Image1.Picture.LoadFromFile('морской конек.bmp');

4:Image1.Picture.LoadFromFile('Осьминог.bmp');

end;

end;

procedure TForm1.ComboBox1Change(Sender: TObject);

begin

case ComboBox1.itemindex of

0:Image2.Picture.LoadFromFile('ананас.bmp');

1:Image2.Picture.LoadFromFile('банан.bmp');

2:Image2.Picture.LoadFromFile('виноград.bmp');

3:Image2.Picture.LoadFromFile('гранат.bmp');

4:Image2.Picture.LoadFromFile('груша.bmp');

5:Image2.Picture.LoadFromFile('яблоко.bmp');

end;

end;

procedure TForm1.ColorBox1Change(Sender: TObject);

begin

Form1.Color:=ColorBox1.Selected;

end;

end.

Оформление программы представлено на рис. 1.

Рис. 1

Рис. 1

Учитель: В курсе БКП вы учились работать со многими готовыми программами. Вспомните, в каких программах вы встречались с рассмотренными видами списков.

Учащиеся: В Microsoft Word и Microsoft Excel – параметры шрифта.

Сегодня мы посмотрим, какие компоненты применяются для программирования списков, какими свойствами и методами они обладают.

На наших занятиях мы уже изучали компоненты, представляющие собой список текстовых строк. Это многострочный редактор Memo и группа зависимых переключателей RadioGroup.

Свойства указанных выше компонентов схожи со свойствами списков. Давайте вспомним их.

Для этого поиграем в игру “Домино”.

Правила игры:

  1. Игра проводится в парах.
  2. На каждый из десяти поставленных вопросов найти верный ответ среди предложенных 20 вариантов на карточках в конверте и вставить в окошки.
  3. На лицевой стороне холста указать фамилии, имена учащихся, выполнивших задания и вложить визитку в соответствующий конверт.
  4. Время выполнения задания – 12-15 мин.

После выполнения данного задания поменяться карточками с ребятами, сидящими за компьютером справа, Проверить выполнение заданий, поставить оценку и написать фамилии проверявших на визитке (находится на лицевой стороне холста) и вложить в соответствующий конверт.

Правильные ответы зачитываются преподавателем

Время проверки 20 – 30 секунд

Критерии оценки:

  • 1 неверный ответ – отлично.
  • 2 -3 неверных – хорошо.
  • 4-5 неверных ответов – удовлетворительно.
  • 6-10 неверных ответов – неудовлетворительно.

Вопросы и Ответы:

Вопрос Предлагаемые варианты ответов
Правильные Неправильные
Свойство, определяющее порядковый номер выбранного переключателя в радиогруппе ItemIndex ItemName
Компонент, представляющий собой группу взаимозависимых переключателей Radiogroup Radiobutton
Свойство радиогруппы, определяющее названия и количество переключателей Items Text
Метод Memo для добавления строки текста в конец текста Add Load
Метод Memo, позволяющий вставить строку текста перед заданной строкой Insert Insert
Свойство Memo, определяющее количество строк текста и их содержание Lines MultiSelect
Очистка Memo Clear Align
Удаление строки текста из текста Memo Delete DeleteLines
Метод, позволяющий загрузить данные из текстового файла в Memo LoadFromFile Visible
Метод сохранения текста Memo в текстовый файл SaveToFile Save

Вывод: мы повторили основные свойства и методы компонентов Memo и Radiogroup.

А теперь познакомимся со свойствами и методами простого списка ListBox.

Откройте файл C:\МОИ ДОКУМЕНТЫ\ПРИМЕР2\пример2.exe.

Внешний вид программы представлен на рис. 2.

Рис. 2

Рис. 2

Листинг программы представлен ниже:

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons, ComCtrls;

type

TForm1 = class(TForm)

ListBox1: TListBox;

Label1: TLabel;

CheckBox1: TCheckBox;

CheckBox2: TCheckBox;

CheckBox3: TCheckBox;

CheckBox4: TCheckBox;

BitBtn1: TBitBtn;

Memo1: TMemo;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

FontDialog1: TFontDialog;

Edit1: TEdit;

CheckBox5: TCheckBox;

BitBtn4: TBitBtn;

CheckBox6: TCheckBox;

CheckBox7: TCheckBox;

Edit2: TEdit;

UpDown1: TUpDown;

Edit3: TEdit;

UpDown2: TUpDown;

procedure CheckBox1Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure CheckBox2Click(Sender: TObject);

procedure CheckBox3Click(Sender: TObject);

procedure CheckBox4Click(Sender: TObject);

procedure CheckBox5Click(Sender: TObject);

procedure BitBtn4Click(Sender: TObject);

procedure CheckBox6Click(Sender: TObject);

procedure CheckBox7Click(Sender: TObject);

procedure UpDown1Click(Sender: TObject; Button: TUDBtnType);

procedure UpDown2Click(Sender: TObject; Button: TUDBtnType);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.CheckBox1Click(Sender: TObject);

begin

If CheckBox1.Checked = true Then

BitBtn1.Enabled:=true

Else

Begin

BitBtn2.Visible:=false;

Memo1.Visible:=False;

BitBtn1.Enabled :=False;

end;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

Memo1.Visible :=True;

BitBtn2.Visible:=True;

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

var I:integer;

begin

ListBox1.Clear;

For I:=0 to Memo1.Lines.Count-1 do

ListBox1.Items.Add(Memo1.Lines[I]);

end;

procedure TForm1.CheckBox2Click(Sender: TObject);

begin

If CheckBox2.Checked = true Then

BitBtn3.Enabled:=true

Else

BitBtn3.Enabled:= false;

end;

procedure TForm1.BitBtn3Click(Sender: TObject);

begin

FontDialog1.Execute;

ListBox1.Font:=FontDialog1.Font;

end;

procedure TForm1.CheckBox3Click(Sender: TObject);

begin

If CheckBox3.Checked = true Then ListBox1.Sorted:=True

else

ListBox1.Sorted:=False;

end;

procedure TForm1.CheckBox4Click(Sender: TObject);

begin

if CheckBox4.Checked = True Then

BitBtn4.Enabled:=true

Else

Begin

BitBtn4.Enabled:=false;

Edit1.Text:='0';

End;

end;

procedure TForm1.CheckBox5Click(Sender: TObject);

begin

if CheckBox5.Checked = True Then

ListBox1.MultiSelect:=True

Else

ListBox1.MultiSelect:=False;

end;

procedure TForm1.BitBtn4Click(Sender: TObject);

begin

Edit1.Text:=Inttostr(ListBox1.SelCount);

end;

procedure TForm1.CheckBox6Click(Sender: TObject);

begin

if CheckBox6.Checked = True Then Begin

Edit2.Visible:=True;

UpDown1.Visible:=True;

end

Else

Begin

Edit2.Visible:=False;

UpDown1.Visible:=False;

End;

end;

procedure TForm1.CheckBox7Click(Sender: TObject);

begin

if CheckBox7.Checked = True Then Begin

Edit3.Visible:=True;

UpDown2.Visible:=True;

end

Else

Begin

Edit3.Visible:=False;

UpDown2.Visible:=False;

End;

end;

procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);

begin

ListBox1.Width:=UpDown1.Position;

end;

procedure TForm1.UpDown2Click(Sender: TObject; Button: TUDBtnType);

begin

ListBox1.Height:=UpDown2.Position;

end;

end.

Ребята самостоятельно знакомятся с новым компонентом ListBox и конспектируют в тетрадях.

ListBox (с. Standard)

Свойства:

Items – описание элементов списка.

Itemindex – номер выбранного элемента.

Multiselect – возможность выделения нескольких элементов списка.

ExtendedSelect – способ выделения элементов списка; False – выделение мышью; True- выделение при нажатой клавише <Ctrl>, <Shift>.

Selcount – число выбранных элементов списка.

Sorted – сортировка (алфавитный порядок) элементов списка.

Style – стиль списка.

Scrollbars

Значения:

lbStandard – стандартный стиль (по умолчанию)

lbOwnerDrawFixed – список с элементами фиксированной высоты, устанавливаемой свойством ItemHeight

Методы:

  • Удаление элемента списка: Listbox1.items.Delete (N), N – номер элемента;
  • Добавление в список нового элемента перед элементом с номером N: Listbox1.items.Insert (N,новый элемент);
  • Добавление в конец списка нового элемента: ListBox1.Items.Add (добавляемый элемент);
  • Запись элементов списка в файл: Listbox1.items.SaveToFile (полное имя файла);
  • Запись в список содержимого файла:Listbox1.items.LoadFromFile(полное имя файла);
  • Очистка списка: Memo1.clear;
  • Удаление выделенного элемента списка: Listbox1.DeleteSelected;
  • Комбинированный список (ComboBox –с. Standard ) – поле со списком.

Вопрос:

Назовите внешние отличительные особенности списка Combobox от списка ListBox?

Учащиеся:

Объединяет поле редактирования Edit и список ListBox.

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

Список цветов ColorBox (c. Additional)

Текущий цвет – Selected

Закрепление изученных свойств и методов выполним с помощью практического задания.

Решение задачи оформить в тетрадях.

Условие задания:

Используя пример 2, создайте список со следующими характеристиками:

Список выпадающий.

Список содержит названия стран: Россия, Франция, Англия.

Элементы списка располагаются в алфавитном порядке.

По умолчанию выбранным элементом списка является Англия.

Параметры шрифта каждого элемента списка: шрифт – Arial, размер-18 пт, цвет – зеленый, полужирный курсив.

Запрограммировать список так, чтобы при выборе страны отображалось название ее столицы.

Закрепим изученные свойства списков теоретически.

Задание: каждому учащемуся заполнить кроссворд, можно пользоваться только компьютером.

Время выполнения задания: 5 минут.

Кроссворд с заданиями и ответами см. рис. 3.

Рис. 3

Рис. 3

Поменяйтесь выполненными заданиями с соседом по парте.

Учителем раздаются карточки с правильными ответами.

Проверяющий указывает свою фамилию и выставляет оценку.

Оценка должна быть выставлена в соответствии с критериями:

  • 1 неверный – отлично
  • 2-3 неверных – хорошо
  • 4 неверных ответов – удовлетворительно
  • 5-11 неверных ответов – неудовлетворительно

Если оценка выставлена не объективно, то итоговая за занятие оценка проверяющего может быть изменена (в сторону уменьшения балла)