Пример 12.1.

Создать проект работы со списками. В проекте предусмотреть:

  • Инициализацию поля ввода.
  • Заполнение комбинированного списка из поля ввода.
  • Вставку строки в комбинированный список.
  • Копирование строк из списка ComboBox в список ListBox,

Рекомендуемая форма программы:

paskal70

Форма содержит следующие компоненты:

  • ListBox1 – простой список.
  • Label1 – метка для заголовка компонента ListBox1.
  • ComboBox1 – комбинированный список.
  • Label2 – метка для заголовка компонента ComboBox1.
  • Edit1- однострочный редактор для ввода текста. В него вводится текст строки для списка.
  • Label3 – метка для заголовка редактора Edit1.
  • Button1– кнопка “Инициализация”. Позволяет очистить поле Edit1 и установить там курсор.
  • Button2 – кнопка “Добавить в ComboBox” для заполнения компонента ComboBox1.
  • Button3 – кнопка “Вставить в ComboBox”. Позволяет вставить строку в заданное место в списке.
  • Button4 – кнопка “Копировать в ListBox”. Позволяет скопировать в ListBox строки, выбираемые в ComboBox.

Выполнение

  1. Активизируем ИСР, выбрав Lazarus в проводнике Windows. В главном меню исполняем команду Файл=>Создать…Активизируется окно выбора типа проекта. В нем нужно выбрать Project / Application (Приложение). Теперь отображаются окна проекта:
  • Пустая Форма, которую нужно заполнить компонентами.
  • Инспектор объектов.
  • Редактор кода с шаблоном кода модуля формы.
  • Сообщения.

paskal71

2. Задание свойств формы. Выбираем объект Form1 и подбираем его размеры и положение. В окне Инспектора объектов назначаем свойства формы:

Свойство Значение
English Перевод English
Name Имя Form1
Caption Надпись Списки
  1. Заполнение формы. При заполнении формы в палитре компонент выбирается нужный блок и переносится в форму. Там подбираются его положение и размеры. Затем в окне Инспектора объектов назначаются свойства компонента. Большая часть свойств устанавливается автоматически, их редактировать не следует. Нужные нам компоненты размещаются в палитре компонент на странице Standard.
  2. Для кнопок необходимо добавить функциональность, написав код обработчика события нажатия. При двойном щелчке по кнопке ИСР автоматически объявляет подпрограмму обработчика. В код модуля формы проекта автоматически заносятся:
  • В поля объекта заголовок обработчика. Заголовок обработчика формируется автоматически. Его имя содержит записанные без пробелов имя компонента и события с префиксом on, которое отрабатывается.
  • В раздел реализации шаблон обработчика. Он имеет заголовок, совпадающий с заголовком в поле объекта с добавлением имени формы в начале заголовка. В него между операторными скобками begin…end надо внести текст подпрограммы обработки события. Для некоторых обработчиков могут потребоваться и локальные переменные.

Листинг модуля формы

unit Prg_12_1_;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

{ TForm1 }

TForm1 = class(TForm)

ListBox1: TListBox;

ComboBox1: TComboBox;

Button1: TButton;

Edit1: TEdit;

Button2: TButton;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Button3: TButton;

Button4: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Prg_12__1: TForm_1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

Edit1.Text:=”;

Edit1.SetFocus;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

ComboBox1.Items.Add(Edit1.Text);

Edit1.Text:=”;

Edit1.SetFocus;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

ComboBox1.Items.Insert(comboBox1.ItemIndex,Edit1.Text);

Edit1.Text:=”;

Edit1.SetFocus;

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

ListBox1.Items.Add(ComboBox1.Items[ComboBox1.ItemIndex]);

end;

initialization

{$I prg_12_1_.lrs}

end.

После заполнения панелей компонентами форма окно Инспектор объектов приобретает вид, по которому проверьте правильность введенных компонент, их имена и иерархию.

paskal72

  1. Сохраним проект в папке с именем 12_1. Для этого вызовем команду Файл=>Сохранить как…, которая приводит к появлению диалогового окна. В нем нужно попасть в нужную папку и сохранить проект. При сохранении проекта приложения необходимо сохранять:
  • модуль формы (с именем Prg_12_1_),
  • проект (с именем Prg_12_1).
  1. Проверим программу в работе. Запускаем программу командой Запуск=>Запуск. Проект компилируется и собирается,  в папке проекта размещается исполняемый файл с расширением .exe. При его исполнении возникает окно приложения. В нем нужно проверить работу обработчиков.
  • Инициализация. Кнопкой Инициализация очищаем Edit1 и передаем ему фокус ввода. Курсор появляется в поле ввода Edit1.
  • Заполнение списка ComboBox. Для каждой строки в редакторе Edit1 заносим текст, кнопкой Добавить в ComboBox переносим его в список. Повторяем операцию нужное число раз. Каждый раз проверяем список ComboBox, убеждаясь в появлении новой строки в конце.
  • Редактирование. В редакторе Edit1 заносим строку текста для ввода в произвольно выбираемую позицию. В ComboBox выделяем позицию для ввода, Кнопкой Вставить в ComboBox текст из редактора перемещается в верхнюю строку редактирования ComboBox.
  • Копирование. В ComboBox выделяем позицию для копирования, ее текст перемещается в верхнюю строку редактирования. Кнопкой Копировать в ListBox переносим строку в ListBox. Каждый раз наблюдаем ListBox, чтобы убедится в появлении там новой строки в очередной позиции. Обратите внимание на появление в ListBox линейки прокрутки, когда его поле заполнено.

Приложение перед закрытием программы:

paskal73

Выводы

В ИСР Lazarus определены несколько компонент списков:

  • ListBox – простой список строк текста для выбора без редактирования.
  • ComboBox – комбинированный список строк текста с возможностью выбора и редактирования.

Все списки содержат массив строк текста, для которых применяются свойства:

  • Items(Index) – массив строк текста с номером Index. Нумерация с 0.
  • ItemIdent – номер выделенного элемента.
  • Count – число элементов в списке.
  • Capacity – максимальное число элементов в списке.

Для работы со списками доступны методы. Основные из них:

  • Add – добавляет элемент в конец списка.
  • Insert(Index,Item) – добавляет элемент Item в позицию с номером Index. Список переиндексируется.
  • Delete (Index) – удаляет элемент с номером Index. Список переиндексируется.
Twitter SEO Community Ваау! News2.ru Chipp Korica SMI2 Google Bookmarks Digg I.ua Закладки Yandex Linkstore Myscoop Communizm Ru-marks Webmarks Ruspace Linkomatic Kli.kz Web-zakladka Zakladok.net Reddit delicious Ma.gnolia Technorati Slashdot Yahoo My Web БобрДобр.ru Memori.ru rucity.com МоёМесто.ru Mister Wong



Copyright © 2009-2010 Программирование на паскале.