Напоминание

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


Автор: Степанюк Александр Юрьевич
Должность: преподаватель
Учебное заведение: ГБПОУ РК "Симферопольский политехнический колледж"
Населённый пункт: г.Симферополь
Наименование материала: Методическая разработка
Тема: Получение практических навыков визуального программирования в интегрированной среде разработки Delphi
Раздел: среднее профессиональное





Назад




Лабораторная работа №32
Лабораторная работа №32

Тема 3.1:
Среда программирования Delphi
Цель:
Получить практические навыки визуального программирования в интегрированной среде разработки Delphi.
Оборудование:
IBM – совместимые компьютеры.
Место проведения:
Компьютерный класс.
Техника безопасности:
См. инструкцию. Ход работы: Класс TStrings - один из основополагающих классов в Delphi. Работа очень многих компонентов построена на имеющемся в их составе свойстве класса TStrings. Например, это свойство Items у ListBox и RadioGroup, Lines у Memo и т.д. и т.п. Класс TStrings применяется для хранения любых объектов наследников класса TObject и связанных с ними текстовых строк. Свойства класса TStrings называются наборами строк. TStrings – абстрактный класс. Обратиться к нему можно лишь при «по- средничестве» соответствующего компонента. Если необходимо создать экземпляр класса TStrings вне компонентов, используйте объект-потомок TStringList,наследующий свойства и методы TStrings. Например, var SL: TStringList; begin SL := TStringList.create; // Но не SL := TString.create! SL.add 'Строка'); … end; К строкам и объектам, хранящимся в TStrings , можно обратиться с помощью индексированных свойств property Strings[i: integer]: string; default; property Object [i: integer]: TObject; Атрибут default означает, что имя индексированного свойства может быть опущено, например, следующие обращения равнозначны: ListBoxl.items.strings[!]:='Строка' ; ListBoxl.items[1] : — ' Строка'; Для программиста свойство типа TStrings выглядит как обычный массив строк, но индекс в таком массиве находится в диапазоне целых чисел 0 - 32767. Пример: Items[0]:=’text1’ - записать строку в 1-й элемент набора строк, Items[1]:=’text2’ - во второй элемент и т.д. Общее число строк можно опреде-лить, обратившись к свойству Count (тип integer) класса TStrings. Класс TStrings также применяется для хранения пар вида «параметр- значение». При чтении (записи) свойства property Values[const Name: string]: string; ищется строка, содержащая подстроку вида Name=значение и возвращается (записывается) значение после символа = . Например, ListBox1.Items.Values[‘y’]:=1; приведет к появлению в списке строки y=1. 1
Лабораторная работа №32 Другие свойства и методы класса TStrings: property Count: inte- ger; Число пар строк и объектов. function Add(const S: string): integer; Добавляет строку в конец набора и возвра- щает присвоенный ей номер. function AddOb- ject(const S: string; AObject: Tobject): in- teger; Добавляет строку и объект. Возвращает присвоенный паре номер procedure AddStrings (Strings: TStrings); Добавляет в конец набора другой набор TSrings. procedure InsertObject (I: integer; const S: string; AObject: TOb- ject); Вставляет объект AObject и строку S под индексом I. procedure Delete (I: integer); Удаляет строку с индексом I. function IndexOf (const S: string): integer; Возвращает номер в наборе строки S. Если она не найдена, функция возвращает -1. function Equals (Strings: TStrings): boolean; Сравнивает набор строк вызвавшего этот метод объекта с набором Strings и возвращает True, если они совпадают. procedure Move(I1,I2:integer); Перемещает пару строка объект с позиции I1 в позицию I2. procedure Exchange (I1,I2: integer); Меняет местами пары строка^объект с индексами I1 и I2. procedure LoadFromFile (const FileName: string); Загружает набор строк из файла procedure SaveToFile (const FileName: string); Сохраняет набор строк в файле Рассмотрим следующий пример. Создадим приложение, в котором выбранные кнопки «прячутся» в списке ListBox, а при выборе их из списка появляются на прежнем месте. Доступ к содержимому списка происходит через свойство Items типа TStrins. Порядковый номер выбранного элемента списка можно узнать с помощью свойства ItemIndex компонента ListBox. Нумерация начинается с нуля. 1. Разместите на форме три кнопки Button1, Button3, Button3, строку Label и список ListBox1, как это показано на рисунке 1. 2
Лабораторная работа №32 Рисунок 1 – Форма программы 2. Создайте обработчик события OnClick для кнопки Button1: procedure TForm1.Button1Click(Sender: TObject); begin (Sender as TControl).visible := False; ListBox1.Items.AddObject((Sender as TButton).caption, Sender) ; end; Метод AddObject добавляет в список и заголовок кнопки, и саму кнопку. Свойство Visible позволяет скрывать элемент, не уничтожая его. 3. Назначьте этот обработчик аналогичным событиям других кнопок, как это делалось в п.7 предыдущей лаб.работы. Комментарий. Параметр Sender т и п а TObject описан в заголовках процедур-обработчиков событий. Через этот параметр передается ссылка на объект-источник события. Так как Sender относится к классу TObject - абстрактному классу на верху иерархии компонентов Delphi, то в процедуру может быть передан любой компонент (будучи наследником TObject он тоже TObject) . Параметр Sender обычно игнорируют, но его необходимо использовать, когда несколько компонентов обращаются к одному и тому же обработчику событий, как в данном примере. Тогда Sender позволяет узнать, кто конкретно этот обработчик вызвал. Оператор as в примере сообщает компилятору, что объект Sender следует рассматривать как принадлежащий классу «кнопка». 4. Создайте обработчик для события OnClick объекта ListBox1: procedure TForm1.ListBox1Click(Sender: TObject); begin with ListBox1 do begin (Items.Objects[ItemIndex] as TButton).visible := true; Items.Delete(ItemIndex); end; end; При выполнении программа будет иметь следующий вид (Рисунок 2). 3
Лабораторная работа №32 Рисунок 2 – Работа программы
Задание
: Измените программу, чтобы в список можно было заносить разнородные элементы: кнопки, панели и др. Более подробную информацию об использовании операторов is и as можно получить в [1].
Контрольные вопросы
1. Каково назначение и возможности среды визуального программирования Borland Delphi? 2. Назначение окон Borland Delphi. 3. Каково назначение палитры компонент? 4. Назначение пиктографических кнопок среды Borland Delphi. 5. Описать окно кода программы и инспектора объектов.
Литература
1. Культин Н. Б. Основы программирования в Delphi XE. — СПб.: БХВ- Петербург, 2011. — 416 с.: ил. + CD-ROM — (Самоучитель) 2. Семакин И.Г Основы программирования и баз данных: учебник для студ. учреждений сред. проф. образования. — М.: Издательский центр «Академия», 2014. — 224 с. 3. Семакин И.Г., Ше стаков А.П. Основы алгоритмизации и программирования: учебник для студ учреждений сред. проф. образования — М. : Издательский центр «Академия», 2013.— 304 с. 4. Семакин И. Г. Основы алгоритмизации и программирования. Практикум: учеб. пособие для студ учреждений сред. проф. образования / Семакин И. Г., Шестаков А. П. — М.: Издательский центр «Академия», 2013. — 144 с. 4


В раздел образования