Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Управление и оптимизация / Osnovi informatsionnikh i komputernikh tekhnologiy 2011

.pdf
Скачиваний:
50
Добавлен:
02.09.2019
Размер:
2.13 Mб
Скачать

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

Элементы, объявленные в разделе interface модуля вне описания типа, видимы и доступны внутри данного модуля и из внешних модулей.

Элементы, объявленные в разделе implementation модуля, видимы и доступны внутри данного модуля, но не доступны из внешних модулей.

Элементы, объявленные в классе в разделе private, видимы и доступны только внутри данного модуля. При этом из процедур, объявленных внутри класса, к ним можно обращаться непосредственно по имени, а из других процедур — только со ссылкой на объект данного класса. Если в модуле описано несколько классов, то объекты этих классов взаимно видят элементы, описанные в их разделах private.

Элементы, объявленные в классе в разделе public, видимы и доступны для объектов любых классов и для других модулей. При этом из объектов того же класса к ним можно обращаться непосредственно по имени, а из других объектов и процедур — только со ссылкой на объект данного класса.

В классах, помимо обсуждавшихся ранее, могут быть еще разделы protected — защищенные. Элементы, объявленные в классе в разделе protected, видимы и доступны для любых объектов внутри данного модуля, а также для объектов классов — наследников данного класса в других модулях. Объекты из других модулей, классы которых не являются наследниками данного класса, защищенных элементов не видят.

Элементы, объявленные внутри другой процедуры, являются локальными, т.е. они видимы и доступны только внутри данной процедуры или внутри процедур, вложенных в данную. При этом время жизни переменных, объявленных внутри процедуры, определяется временем выполнения данной процедуры.

Работа со свойствами, методами и объектами

Классы и объекты

Delphi позволяет объявлять классы, которые играют жизненно важную роль в создании и управлении формами и их управляющими элементами. Класс – категория объектов, которые совместно используют одни и те же свойства и операции. Можно думать о классе как о супер-записи, которая объединяет поля и методы. Поля описывают состояние объекта, в то время как метод определяет, как объект управляется.

Общий синтаксис класса: Type

TclassName = Class public

<public fields>

131

<public methods> protected

<protected fields> <protected methods>

private

<private fields> <private methods>

end;

Объявление класса имеет три возможных раздела, которые определяют доступность полей и методов. Раздел public объявляет поля и методы, не имеющие никаких ограничений доступа – экземпляры классы и классыпотомки могут иметь доступ к этим полям и методам. Раздел protected объявляет поля и методы, имеющие некоторые ограничения доступа – экземпляры классы и классы-потомки могут иметь доступ к этим полям и методам. Раздел private объявляет поля и методы, имеющие серьезные ограничения доступа – экземпляры классы и классы-потомки к ним обращаться не могут.

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

Объекты – это экземпляры классов. Объект объявляется в операторе var точно так же, как другие типы переменных. Каждый объект имеет собственный набор полей класса и может обращаться только к его публичным полям. Аналогично, только публичные методы класса могут применяться к объекту.

Объектно-ориентированное программирование (ООП) подразумевает управление объектами путем посылки им сообщений. Сообщение указывает объекту выполнить задачу. Объект ищет метод, чье имя соответствует такому сообщению, и применят этот метод. Таким образом, ООП-сообщение определяет, что делать объекту, в то время как метод определяет, как управлять объектом. Паскаль использует операцию точки, чтобы обратиться к публичным полям объекта и также посылать сообщение объекту.

Лабораторный практикум «Программирование в среде Borland Delphi»

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

132

студента и ориентировать его на максимально полную реализацию своего внутреннего потенциала в качестве конкурентоспособной личности.

Лабораторная работа «Знакомство с основными компонентами Delphi»

Цели работы:

Познакомиться с основными компонентами Delphi;

Получить практические навыки размещения визуальных компонент на форме;

Изучить реакции объектов на события.

Технические средства: ПЭВМ с установленной операционной системой

Windows.

Программные средства: Delphi 7.

Теоретическое введение.

Интегрированная Среда Разработки (Integrated Development Environment - IDE, в дальнейшем мы будем использовать для нее аббревиатуру ИСР) — это среда, в которой есть все необходимое для проектирования, запуска и тестирования приложений и где все нацелено на облегчение процесса создания программ. ИСР интегрирует в себе редактор кодов, отладчик, инструментальные панели, редактор изображений, инструментарий баз данных — все, с чем приходится работать. Эта интеграция предоставляет разработчику гармоничный набор инструментов, дополняющих друг друга. Более того, как вы увидите в дальнейшем, вам предоставлена возможность расширять меню ИСР, включая в нее необходимые вам дополнительные программы, в том числе и собственные. Результатом является удобная для вас среда быстрой разработки сложных прикладных программ.

Запустите Delphi, выбрав пиктограмму Delphi в разделе меню Windows Пуск Программы. Когда вы щелкнете на пиктограмме Delphi, перед вами откроется основное окно Интегрированной Среды Разработки. В Delphi 6 вид окна представлен на рисунке. В общих чертах окна всех версий достаточно сходны.

В верхней части окна ИСР вы видите полосу главного меню. Ниже полосы главного меню расположены две инструментальные панели. Левая панель (состоящая, в свою очередь, из нескольких панелей) содержит два ряда быстрых кнопок, дублирующих некоторые наиболее часто используемые команды меню.

Правая панель содержит палитру компонентов библиотеки визуальных компонентов. Палитра компонентов содержит ряд страниц, закладки которых видны в ее верхней части. Состав палитры зависит не только от варианта Delphi, но и от того, создаете ли вы приложение Windows, или кроссплатформенное приложение

133

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

В основном поле окна вы можете видеть слева два окна: сверху — Дерево Объектов (Object TreeView), под ним — Инспектор Объектов (Object Inspector). Окно Дерево Объектов будет отображать иерархическую связь визуальных и невизуальных компонентов и объектов вашего приложения. А Инспектор Объектов — это основной инструмент, с помощью которого вы в дальнейшем будете задавать свойства компонентов и обработчики событий. Правее этих окон вы можете видеть окно пустой формы, готовой для переноса на нее компонентов. Под ним расположено окно Редактора Кодов.

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

Палитра компонентов

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

Страница Standart

На странице Standard палитры компонентов сосредоточены стандартные для Windows интерфейсные элементы, перечисленные в следующей таблице:

134

Изображение

Имя

Назначение

MainMenu Главное меню программы. Компонент способен создавать и обслуживать сложные иерархические меню.

РорирМепи Вспомогательное меню. Обычно это меню появляется в виде отдельного окна после нажатия правой кнопки мыши.

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

Edit Текстовый редактор. Предназначен для ввода и/или отображения одной текстовой строки.

Memo Многострочный текстовый редактор. Используется для ввода и/или отображения многострочного текста.

Button Командная кнопка. Обработчик события OnClick этого компонента обычно используется для реализации некоторой команды.

CheckBox Независимый переключатель. Щелчок мышью на этом компоненте в работающей программе изменяет его логическое свойство Checked.

RadioButton Зависимый переключатель. Обычно объединяется как минимум еще с одним таким же компонентом в группу. Щелчок по переключателю приводит к автоматическому освобождению ранее выбранного переключателя в той же группе.

ListBox Список выбора. Содержит список предлагаемых вариантов (опций) и дает возможность проконтролировать текущий выбор.

ComboBox Комбинированный список выбора. Представляет собой комбинацию списка выбора и текстового редактора.

ScrollBar Полоса управления. Представляет собой вертикальную или горизонтальную полосу, напоминающую полосы прокрутки по бокам Windows-окон.

GroupBox Группа элементов. Этот компонент используется для группировки нескольких связанных по смыслу компонентов.

RitdioGroup Группа зависимых переключателей. Служит для отображения состояния и выбора одного из взаимоисключающих переключателей.

Panel Панель. Этот компонент, как и GroupBox, служит для объединения нескольких компонентов. Содержит внутреннюю и внешнюю кромки, что позволяет создать эффекты «вдавленности» и «выпуклости».

135

Страница Additonal

В страницу Additonal помещены 13 дополнительных компонентов, с помощью которых можно разнообразить вид диалоговых окон:

Изображение

Имя

Назначение

BitBtn Командная кнопка с надписью и пиктограммой.

SpeedButton Пиктографическая кнопка. Обычно используется для быстрого доступа к тем или иным опциям главного меню.

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

StringGrid Таблица строк. Этот компонент обладает мощными возможностями для представления текстовой информации в табличном виде.

DrawGrid Произвольная таблица. В отличие от StringGrid, строки этого компонента могут содержать произвольную информацию, в том числе и рисунки.

Image Рисунок. Этот компонент предназначен для отображения рисунков, в том числе - пиктограмм и метафайлов.

Shape Фигура. С помощью этого компонента вы можете вставить в окно правильную геометрическую фигуру - прямоугольник, эллипс, окружность и т.п.

Bevel Кромка. Служит для выделения отдельных частей окна трехмерными рамками или полосами.

ScrollBox Панель с полосами прокрутки. В отличие от компонента Panel, автоматически вставляет полосы прокрутки, если размещенные в нем компоненты отсекаются его границами.

CheckListBox Список множественного выбора. Отличается от стандартного компонента ListBox наличием рядом с каждой опцией независимого переключателя типа CheckBox, облегчающего выбор сразу нескольких опций.

Splitter Граница. Этот компонент размещается на форме между двумя другими видимыми компонентами и дает возможность пользователю перемещать границу, отделяющую компоненты друг от друга.

SlaticTexl Статический текст. Отличается от стандартного компонента Label наличием собственного Windows-окна, что позволяет обводить текст рамкой или выделять его в виде «вдавленной» части формы.

Chart Диаграмма. Этот компонент облегчает создание специальных панелей для графического представления данных.

136

Страница Win32

Страница Win32 содержит интерфейсные элементы для 32-разрядных операционных систем (ОС) Windows.

Изображение

Имя

Назначение

TabControl Набор закладок. Каждая закладка представляет собой прямоугольное поле с надписью и/или текстом. Выбор той или иной закладки распознается программой и используется для управления содержимым окна компонента.

PageControl Набор панелей с закладками. Каждая панель может содержать свой набор интерфейсных элементов и выбирается щелчком по связанной с ней закладке.

ImageList Набор рисунков. Представляет собой коллекцию нескольких рисунков одинакового размера.

RichEdit Многострочный редактор форматированного текста. В отличие от компонента Memo страницы Standard, текст в компоненте RichEdit подчиняется правилам Расширенного Текстового Формата (RTF - Rich Text Format) и может изменять такие свои характеристики как шрифт, цвет, выравнивание и т.д.

TrackBar Регулятор. Используется для управления значениями некоторых величин в программах. Например, с его помощью удобно изменять громкость звучания в мультимедийных программах.

ProgressBar Индикатор процесса. С помощью этого компонента можно отображать ход исполнения достаточно длительного по времени процесса, например, процесса переноса данных на дискету.

UpDown Цифровой регулятор. Две кнопки этого компонента предназначены для увеличения (верхняя) или уменьшения (нижняя) связанной с компонентом числовой величины.

HotKey Управляющая клавиша. Компонент используется для ввода управляющих клавиш, таких как F1, Alt+A, Ctrl+Shift+1 и т.п.

Animate Мультипликатор. Предназначен для отображения последовательно сменяющих друг друга кадров движущихся изо-

дать видеоклип звуком.

DateTimeСелектор времени/даты. Этот компонент предназначен для Picker ввода или отображения даты или времени.

Tree View Дерево выбора. Представляет собой совокупность связанных в древовидную структуру пиктограмм. Обычно используется для просмотра структуры каталогов (папок) и других подобных элементов, связанных иерархическими отношениями.

137

List View

Header-

Control

StatusBar

ToolBar

CoolBar

Панель пиктограмм. Организует просмотр нескольких пиктограмм и выбор нужной. Этот компонент способен располагать пиктограммы в горизонтальных или вертикальных рядах и показывать их в крупном или мелком масштабе.

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

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

Инструментальная панель. Этот компонент служит контейнером для командных кнопок и способен автоматически изменять их размеры и положение при удалении кнопок или при добавлении новых.

Инструментальная панель. В отличие от ToolBar, используется для размещения стандартных интерфейсных компонентов

Windows, таких как Edit, ListBox, ComboBox и т.д..

Страница System

На этой странице представлены компоненты, которые имеют различное функциональное назначение, в том числе компоненты, поддерживающие стандартные для Windows технологии межпрограммного обмена данными

OLE {Object Linking and Embedding - связывание и внедрение объектов) и DDE {Dynamic Data Exchange - динамический обмен данными).

Изображение Имя

Timer

PaintBox

MediaPlyaer

OleContainer

DDEClient-

Conv

Назначение

Таймер. Этот компонент служит для отсчета интервалов реального времени.

Окно для рисования. Создает прямоугольную область, предназначенную для прорисовки графических изображений.

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

OLE-контейнер. Служит приемником связываемых или внедряемых объектов.

DDE-связь. Совместно с DDEClientItem используется для создания клиентской программы в DDf-связи.

138

DDEClientItem DDE-тема. Определяет тему DDE-связи в клиентском приложении.

DDEServer- DDE-связь. Совместно с DDEServerltem используется для Conv создания серверной программы в DDE-связи.

 

DDEServer- DDE-тема. Определяет тему DDE-связи в серверном прило-

 

Item

жении.

 

 

 

Страница Samples

 

 

 

 

Эта страница содержит компоненты разного назначения.

Изображение

Имя

 

Назначение

Gauge Индикатор состояния. Подобен компоненту ProgressBar (страница Win32), но отличается большим разнообразием форм.

ColorGrid Таблица цветов. Этот компонент предназначен для выбора основного и фонового цветов из 16-цветной палитры.

SpinButton Двойная кнопка. Дает удобное средство управления некоторой числовой величиной.

SpinEdit Редактор числа. Обеспечивает отображение и редактирование целого числа с возможностью его изменения с помощью двойной кнопки.

DirectoryСписок каталогов. Отображает в иерархическом виде OulLine структуру каталогов дискового накопителя.

Calendar Календарь. Предназначен для показа и выбора дня в месяце.

IBEventAlerter Сторож событий. Этот компонент осуществляет асинхронную связь с сервером БД InterBase. При возникновении в сервере нужного события компонент активизирует свой обработчик OnEventAlert и таким образом извещает программу о новом состоянии БД.

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

Есть и другой способ поместить компонент на форму — достаточно сделать двойной щелчок на пиктограмме компонента, и он автоматически разместится в центре вашей формы. Если вы выбрали компонент, а затем изменили ваше намерение размещать его, вам достаточно нажать кнопку указателя. Это прервет процесс размещения компонента, и программа вернется в нормальный режим, в котором вы можете выбирать другой компонент или выполнять какую-то команду.

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

139

пиктограммой курсор мыши. Если вы выберете в палитре компонент и нажмете клавишу Fl, то вам будет показана справка по типу данного компонента. Тут надо сразу сделать одно замечание. Имена на ярлычках выглядят, например, так: MainMenu, Button и т.д. Однако в Delphi все имена классов в действительности начинаются с символа «Т», например TMainMeim, TButton. Под такими именами вы можете найти описания соответствующих компонентов во встроенной в Delphi справочной системе.

Практическая часть 1.

Основой почти всех приложений Delphi является форма. Ее можно понимать как типичное окно Windows. Форма является основой, на которой размещаются другие компоненты. Типичный вид пустой формы Delphi показан на рисунке.

Окно пустой формы

Форма имеет те же свойства, что присущи другим окнам Windows. Она имеет управляющее меню в верхнем левом углу, полосу заголовка, занимающую верхнюю часть, кнопки развертывания, свертывания и закрытия окна в верхнем правом углу. Можно изменить вид окна, убрав в нем какие-то кнопки или всю полосу заголовка, сделав его окном с неизменяемыми размерами и т.п.

Во время проектирования форма покрыта сеткой из точек. В узлах этой сетки размещаются те компоненты, которые вы помещаете на форму. Во время выполнения приложения эта сетка, конечно, не видна.

Окно редактора кода

Одной из наиболее важных частей среды Delphi является окно Редактора Кода. Его вид и возможности изменяются от версии к версии.

Окно Редактора Кода в Delphi 6 показано ниже на рисунке

140