Объектно-ориентированное программирование на языке Delphi

Основные понятия и принципы объектно-ориентированного программирования в среде Delphi. Современные компоненты интерфейса пользователя, предлагаемые системой. Работа с графикой, файлами и базами данных. Примеры мультимедийных программ: игровые и обучающие.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 15.11.2013
Размер файла 744,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Оглавление

Введение

Глава 1. Основные понятия и принципы объектно-ориентированного программирования в среде Delphi

1.1 Среда Delphi и ее составляющие

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

1.3 Принципы объектного программирования

Глава 2. Современные компоненты интерфейса пользователя, предлагаемые системой Delphi

2.1 Основы интерфейса пользователя

2.2 Работа с графикой

2.3 Мультимедиа возможности

2.4 Работа с файлами

Глава 3. Работа с базами данных в Delphi

Заключение

Список литературы

Введение

Программный продукт Delphi является логическим продолжением ряда продуктов фирмы Борланд. Его непосредственный предшественник - Borland Pascal 7.0 with Objects. Указанной версией заканчивается развитие широко распространенных продуктов серий Turbo Pascal и Borland Pascal. В составе Borland Pascal 7.0 with Objects имеется инструментальная система Resource Workshop (мастерская ресурсов) для создания интерфейсов пользователя, соответствующих стандартам Windows. Работа выполняется по принципам визуального программирования, т.е. разработчик составляет будущие формы ввода/вывода и управления программой непосредственно на экране. Однако при использовании Resource Workshop программист должен сам обеспечить стыковку созданных с его помощью ресурсов и программы на языке Pascal. Это обстоятельство, видимо, и натолкнуло специалистов фирмы Борланд на мысль: объединить в одной интегрированной среде возможности языка Pascal и Resource Workshop; добавить еще целый ряд необходимых для практического программирования возможностей. В результате получилась Delphi. [5]

Delphi является системой объектно-ориентированного программирования. Объектно-ориентированное программирование - это методика разработки программ, в основе которой лежит понятие объекта. Объект - это некоторая структура, соответствующая объекту реального мира, его поведению. Задача, решаемая с использованием методики объектно-ориентированного программирования, описывается в терминах объектов и операций над ними, а программа при таком подходе представляет собой набор объектов и связей между ними. [4]

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

При запуске Delphi автоматически создаются одна пустая форма и соответствующий ей программный модуль на языке Object Pascal. В ходе составления программы требуется нанести на форму нужные компоненты из палитр и дополнить программный модуль. Достоинством системы является то, что размещение компонентов на экране, а также задание начальных значений их свойств Delphi позволяет осуществлять на этапе конструирования формы без написания какой-либо программы. Для этой цели предусмотрено специальное окно, называемое Инспектором объектов, в котором перечислены все доступные в режиме проектирования свойства выделенного компонента и их текущие значения.

Еще одной существенной чертой системы программирования Delphi является ее открытость - почти все имеющиеся в системе объекты реализованы на языке Pascal и могут быть легко дополнены новыми.

Таким образом, среда Delphi содержит в себе все наиболее передовые черты системы программирования. Она является мощным и в то же время несложным в использовании инструментальным средством для создания приложений с современным интерфейсом. [6]

Глава 1. Основные понятия и принципы объектно-ориентированного программирования в среде Delphi

1.1 Среда Delphi и ее составляющие

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

Основные окна системы Delphi

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

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

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

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

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

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

Компонентный подход к созданию программ позволяет повторно использовать готовые разработки и во многих случаях значительно повышает эффективность труда. [1]

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

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

В 80-х годах стали появляться первые коммерческие системы разработки, в которых была реализована новая парадигма программирования, так называемый объектный подход, что позволило резко повысить производительность труда программистов. Подход был основан на понятии объекта, типа данных, в котором сочетаются как свойства, сгруппированные данные (пример -- поля в записи), так и методы их обработки (подпрограммы).

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

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

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

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

Поля, свойства и методы класса называются членами класса.

Когда описывается переменная типа class, для ее полей и свойств в памяти выделяется соответствующий объем, но машинный код, в который транслируются методы класса, наличествует в единственном экземпляре, так как меняться он не может, и хранить несколько одинаковых копий подпрограмм не имеет смысла. Когда объект создается, однократно вызывается специальный метод, называемый конструктором. В нем выполняются различные действия по начальной инициализации полей объекта. Когда объект уничтожается (например, он был описан внутри процедуры как локальная переменная и удаляется из памяти при ее завершении), вызывается другой метод -- деструктор, который выполняет различные дополнительные действия по освобождению памяти, если это необходимо. Явно вызывать конструктор и деструктор из программного кода нельзя. Это происходит только автоматически.

Переменная, описанная как класс, фактически является указателем на экземпляр класса. Это сделано для повышения эффективности работы с ним. Однако при использовании таких переменных применять операции работы с указателями (^, @) не надо. Достаточно обычного обращения к ним как к обычным переменным, а к членам класса -- как к полям записи, через точку.

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

Во время проектирования формы приложения Delphi автоматически добавляет в текст программы необходимые объекты. Если сразу после запуска Delphi посмотреть содержимое окна редактора кода, то там можно обнаружить следующие строки:

type

Tform1 = class (Tform)

private

{ Private declarations}

public

{ Public declarations}

end;

var

Form1; Tform1

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

Когда программист, добавляя необходимые компоненты, создает форму, Delphi формирует описание класса формы. Когда программист создает функцию обработки события формы или ее компонента, Delphi добавляет объявление метода в описание класса формы приложения.

Помимо классов визуальных компонентов в библиотеку классов входят и классы так называемых невизуальных компонентов, которые обеспечивают создание соответствующих объектов и доступ к их методам и свойствам. [4]

Существует базовая иерархия классов системы Delphi. Класс TObject лежит в основе всей иерархии классов. Он обладает самыми общими методами, присущими любому объекту Pascal. Класс TObject описывает основные принципы поведения объектов во время работы программы (создание, уничтожение, обработка событий и т.д.). На уровне класса TPersistent (наследник TObject) реализованы основные методы копирования содержимого объектов. Класс TComponent (наследник TPersistent) является основным родительским классом для всех классов, описывающих компоненты Delphi. В этот класс входит набор самых общих свойств, имеющихся у каждого компонента Delphi, и некоторые полезные методы. Класс TControl (наследник TComponent) служит основным классом для всех визуальных элементов управления. Если такой элемент управления является стандартным элементом Windows, то он базируется на еще одном промежуточном классе TWinControl (наследник класса TControl). И, наконец, форма - важнейший компонент Delphi, на котором основана вся работа этой системы по проектированию и разработке приложений. Форма (класс TForm) содержит богатый набор свойств, методов и событий, позволяющих легко настраивать и организовывать самые сложные алгоритмы ее функционирования. [1]

1.3 Принципы объектного программирования

Суть объектно-ориентированного подхода к программированию заключается в трех принципах: инкапсуляции, наследовании и полиморфизме.

Наследование

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

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

Цепочки наследования могут быть неограниченной длины. Так, у класса "грузовой автомобиль" могут быть классы-наследники (или дочерние классы) "МАЗ" и "КАМАЗ", обладающие дополнительными специфическими свойствами и методами (это классы, а не объекты; объектом будет конкретный грузовик МАЗ, а не марка этого автомобиля), у класса "кнопка" наследники -- "графическая кнопка", "круглая кнопка" и так далее. При этом различные методы для каждого из наследников разрешается переопределять. Например, метод "двигаться" для классов "МАЗ" и "КАМАЗ" будет, хоть и немного, но отличаться: по-разному расходуется горючее (снижается значение соответствующего свойства), по-разному набирается скорость и так далее.

Полиморфизм

Когда будет происходить обращение к переменной, относящейся к классу "КАМАЗ", и вызов унаследованного метода "двигаться", программе придется решить, какой конкретно метод надо вызвать: метод класса "автомобиль", "грузовой автомобиль" или "КАМАЗ". В соответствии с принципом полиморфизма решение принимается в зависимости от типа переменной, вызывающей этот метод. То есть, если переменная описана как относящаяся к типу "КАМАЗ", будет вызван метод "двигаться", определенный именно для КАМАЗа.

Инкапсуляция

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

Кроме того, желательно не допускать бесконтрольного изменения значений свойств, так как это может привести к нарушению запланированной и сбалансированной взаимосвязи между этими свойствами. Например, нельзя бездумно изменить значение свойства "текущая скорость", просто записав в него новое число. Надо вызвать соответствующий метод, который учтет изменение потребления бензина и выполнит ряд дополнительных действий. Хорошим стилем программирования считается недоступность всех полей и свойств объекта для прямого изменения. Вместо этого создаются методы, позволяющие получить значение поля и занести в него новое значение. Сами поля помещаются в скрытую часть класса.

События

Помимо этих трех фундаментальных возможностей объектно-ориентированного программирования, в среде Delphi реализована новая характеристика объекта - возможность обработки так называемых событий, получаемых от системы Windows или самой программы. Этот принцип лежит в основе работы всех визуальных компонентов Delphi, которые обрабатывают различные события, возникающие в процессе выполнения программы. [1]

Глава 2. Современные компоненты интерфейса пользователя, предлагаемые системой Delphi

2.1 Основы интерфейса пользователя

На самом высоком уровне пользовательский интерфейс основывается на четырех базовых классах Delphi:

- TApplication (фундаментальный класс, свойства и методы которого описывают основные характеристики приложений Windows);

- TClipboard (его средства определяют взаимодействие с буфером обмена Windows);

- TForm (описывает свойства и методы для создания окон, строительных блоков для размещения визуальных и невизуальных компонентов);

- TScreen (средства для создания системных настроек: разрешение экрана, доступные шрифты и прочее).

Приложение (класс TApplication)

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

Каждая программа, создаваемая в системе Delphi, имеет доступ к глобальной переменной Application класса TApplication. К ней следует обращаться, когда необходимо воспользоваться возможностями этого класса.

Вот несколько примеров использования класса TApplication.

1. Предположим, выполняется длинный цикл с большим объемом вычислений.

for i := 1 to 1000000 do

begin

// счет

end;

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

for i := 1 to 1000000 do

begin

// счет

Application.ProcessMessages;

end;

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

Application.HelpFile := `PROGHELP.HLP';

Выполнить команду поиска можно с помощью метода HelpCommand.

Application.HelpCommand(HELP_FINDER, 0);

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

Application.HelpContext(DATANOTFOUND);

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

// собственный обработчик

procedure TForml.AppException(Sender: TObject;

E: Exception);

begin

// вывод описания исключительной ситуации

//в диалоговом окне:

Application.ShowException(E);

// завершение приложения

Application.Terminate;

end;

procedure TForml.FormCreate(Sender: TObject);

begin

// в момент создания формы

// указываем собственный обработчик

// исключительных ситуаций:

Application.OnException := AppException;

end;

Класс Буфер обмена (TClipboard)

Данный класс позволяет работать со стандартным буфером обмена Windows. [1] Буфер обмена - это зарезервированная область оперативной памяти в многозадачной ОС Windows, которая служит средством обмена данными между приложениями. Естественно, подразумевается, что буфер обладает возможностью получать, хранить и извлекать данные, причем разных форматов. Сегодня, пожалуй, не найти графических и текстовых редакторов, которые не использовали бы буфер обмена, и объяснение этому факту совсем незамысловатое: в отличие от других средств, которые могли бы быть временным хранилищем данных, буфер является наилучшим решением не только для хранения, но и для быстрой обработки данных, для свободного доступа к хранимым там данным со стороны любого приложения или его компонента. [2] Буфер обмена описан в модуле Clipbrd. Специально создавать объект типа TClipboard не требуется. В системе Delphi имеется готовый объект Clipboard, к которому можно обращаться для использования буфера обмена. При помощи некоторых процедур в Delphi можно выполнить ряд стандартных операций, к примеру, очистить буфер или определить тип хранящихся в нем данных.

Виртуальный экран в Delphi

С помощью класса TScreen можно определить, какие формы имеются в приложении, узнать, какая форма и какой элемент управления являются активными, получить сведения о доступных шрифтах, указателях мыши. В системе Delphi имеется глобальная переменная Screen -- объект этого класса. Следует обращаться именно к ней, а не создавать экземпляры TScreen самостоятельно. [1]

2.2 Работа с графикой

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

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

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

После того как на холст выведена графическая информация, она отображается в рамках формы до тех пор, пока область холста не закроется другим окном или приложение не будет свернуто, то есть пока область холста не окажется закрытой (возможно, частично). При новом появлении этой области на экране графические данные, выведенные на нее ранее, не восстановятся, и их придется выводить снова. В какой момент это лучше делать? Когда область холста становится видимой, Windows генерирует системное сообщение WM_PAINT, описывающее ту часть формы, которая требует перерисовки. В системе Delphi такое сообщение обозначается OnPaint. Оно автоматически обрабатывается формами и элементами управления при необходимости их отображения и обычно не требует вмешательства со стороны программиста. Исключением являются те случаи, когда форма используется именно для вывода графической информации: всевозможных графиков, мультимедийных данных и т. п.

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

В качестве свойств класса TCanvas, в первую очередь, используются классы, описывающие цвет и способ заполнения областей формы, цвет и толщину линий, стиль и размер шрифта и другие. [1]

Для вычерчивания точек, линий, контуров геометрических фигур используется карандаш, для закрашивания областей, ограниченных контурами, - кисть. Карандашу и кисти, используемым для вывода графики на холсте, соответствуют свойства Pen и Brush, которые представляют собой объекты классов TPen и Tbrush, соответственно. Для вывода текста на поверхность графического объекта используется метод TextOut. Инструкция вызова метода TextOut в общем виде выглядит следующим образом:

Объект. Canvas. TextOut (x, y, Текст)

Объект - имя объекта, на поверхность которого выводится текст;

x, y - координаты точки графической поверхности, от которой выполняется вывод текста;

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

Координаты области вывода текста

Шрифт - свойство Font класса TCanvas, служит оболочкой ресурса Windows, определяющего текущий шрифт. Содержит множество стандартных свойств, описывающих характеристики шрифта.

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

Вычерчивание прямой линии осуществляет метод LineTo, инструкция вызова которого в общем виде выглядит следующим образом:

Компонент. Canvas. LineTo (x, y)

Метод LineTo вычерчивает прямую линию от текущей позиции карандаша в точку с координатами, указанными при вызове метода.

Метод Polyline вычерчивает ломаную линию. В качестве параметра метод получает массив типа TPoint. Каждый элемент массива представляет собой запись, поля x и y которой содержат координаты точки перегиба ломаной. Метод Polyline вычерчивает ломаную линию, последовательно соединяя прямыми точки, координаты которых находятся в массиве.

В качестве примера приведем процедуру, которая выводит график изменения некоторой величины. Предполагается, что исходные данные находятся в доступном процедуре массиве Date (тип Integer).

procedure TForm1.Button1Click(Sender: TObject);

var

gr: array [1..50] of TPoint; // график - ломаная линия

x0,y0: integer; // координаты точки начала координат

dx,dy: integer; // шаг координатной сетки по осям X и Y

i: integer;

begin

x0:= 10; y0:= 200;

dx:= 5; dy:= 5;

for i:= 1 to 50 do // заполняем массив gr

begin

gr[i].x:= x0+(i-1)*dx;

gr[i].y:= y0-Date[i]*dy

end;

with form1.Canvas do // строим график

begin

MoveTo (x0,y0); LineTo (x0,10); // ось Y

MoveTo (x0,y0); LineTo (200,y0); // ось X

Polyline(gr) // график

end

end;

График изменения величины

Метод Ellipse вычерчивает эллипс или окружность, вычерчивание дуги выполняет метод Arc, сектора эллипса или круга - метод Pie. Методом Rectangle вычерчивается прямоугольник, а методом Polygon - многоугольник. Используя свойство Pixels, можно задать требуемый цвет для любой точки графической поверхности.

Система Delphi позволяет использовать в программе иллюстрации. Наиболее просто вывести иллюстрацию, которая находиться в файле с расширением bmp, jpg или ico, можно при помощи компонента Image. Также в Delphi можно создавать мультипликацию. [4]

2.3 Мультимедиа возможности

программирование delphi мультимедийный интерфейс

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

Delphi предоставляет в распоряжение программиста два компонента, которые позволяют разрабатывать мультимедийные программы:

- Animate - обеспечивает вывод простой анимации (подобно той, которую видит пользователь во время копирования файлов);

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

Компонент Animate, значок которого находится на вкладке Win32, позволяет воспроизводить простую анимацию, кадры которой находятся в AVI-файле. Анимацию можно просматривать непрерывно или по кадрам.

Хотя анимация, находящаяся в AVI-файле, может сопровождаться звуковыми эффектами, компонент Animate обеспечивает воспроизведение только изображения.

Компонент MediaPlayer, значок которого находится на вкладке Sistem, позволяет воспроизводить видеоролики, звук и сопровождаемую звуком анимацию. В результате добавления к форме компонента MediaPlayer на форме появляется группа кнопок, подобных тем, которые можно видеть на обычном аудио- или видеоплеере.

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

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

Форма и диалоговое окно программы

Компонент Panel1 используется в качестве экрана, на который осуществляется вывод анимации, и его имя принимается в качестве значения свойства Displey компонента MediaPlayer1. Размер области вывода анимации определяется значением свойства DispleyRect компонента MediaPlayer. Это свойство во время разработки программы недоступно. Поэтому его значение устанавливается во время работы программы в результате выполнения инструкции

MediaPlayer1.DisplayRect:=Rect(0,0,60,60).

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,MPlayer, StdCtrls, ExtCtrls;

type

TForm1 = class(TForm)

Label1: TLabel; // информационное сообщение

Panel1: TPanel; // панель, на которую

выводится анимация

Button1: TButton; // кнопка Ok

MediaPlayer1: TMediaPlayer;// универсальный проигрыватель

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin

MediaPlayer1.Play // воспроизведение анимации

end;

procedure TForm1.FormCreate(Sender: TObject);

begin // зададим размер области вывода анимации

// на поверхности формы

MediaPlayer1.DisplayRect:=Rect(0,0,60,60);

end

end.[4]

2.4 Работа с файлами

Технология работы с файлами в системе Delphi требует определенного порядка действий.

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

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

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

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

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

При создании программ для Windows наиболее корректно применять стандартные функции этой системы. Для работы с ними не требуется создавать специальные переменные файлового типа: в системе Windows каждый файл имеет уникальный цифровой идентификатор. По-английски он называется Handle, и под таким названием присутствует в описании многих функций.

Файл создается с помощью функции

function FileCreate(const FileName: string): Integer;

В Windows режимы создания и открытия файла различаются.

Функция возвращает идентификатор файла или значение -1, если создать файл не удалось. Параметр FileName содержит имя файла, возможно, вместе с полным путем поиска.

Открытие файла выполняется функцией

function FileOpen(const FileName: string;

Mode: LongWord): Integer;

Режим открытия определяется параметром Mode. Чаще всего применяется одно из трех следующих значений:

fmOpenRead -- открытие только на запись;

fmOpenWrite -- открытие только на чтение;

fmOpenReadWrite -- открытие и на запись, и на чтение.

Чтение данных:

function FileRead(Handle: Integer);

var Buffer;

Count: Integer): Integer;

Параметр Count указывает число считываемых байтов, параметр Buffer -- это переменная, в которую эти байты записываются. Как правило, в качестве такой переменной выступает массив из элементов типа Char или Byte. Аналогично выглядит и функция записи данных:

function FileWrite(Handle: Integer;

const Buffer; Count: Integer): Integer;

Данные для записи содержатся в параметре Buffer. Параметр Count задает число записываемых байтов. Закрытие файла происходит с помощью процедуры

procedure FileClose(Handle: Integer);

Имеется ряд дополнительных файловых функций Windows, предоставляющих расширенные возможности для работы. Для поиска файла можно использовать функцию

function FileSearch(const Name, DirList: string): string;

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

S := FileSearch('MyDoc.doc',

'С:\Мои документы;D:\Info\Texts');

if S <>'' then ShowMessage(S);

Данный код выполняет поиск файла MyDoc.doc в каталогах С:\Мои документы и D:\Info\Texts. Если файл найден, то выводится сообщение, содержащее имя этого файла вместе с полным путем поиска.

Для произвольной установки текущей позиции в файле применяется функция

function FileSeek(Handle, Offset, Origin: Integer): Integer;

Параметр Offset задает сдвиг в байтах относительно позиции, определяемой параметром Origin.

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

Эти новые типы основаны на базовом классе TStream (поток). Базовый класс имеет набор виртуальных методов записи и считывания информации и установки конкретной позиции внутри набора данных.

Наследником класса THandleStream, берущего свое начало непосредственно от класса Tstream является класс TFileStream. На нем основываются классы, предназначенные для считывания и записи информации при работе с объектами. Обращаться к этим объектам можно через уникальный идентификатор Windows -- handle.

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

Конструктор имеет два параметра: имя открываемого файла и режим открытия.

constructor Create(const FileName: string; Mode: Word);

Параметр Mode характеризует цель открытия файла (чтение, запись и т.п.).

Для считывания данных из потока применяется метод

function Read(var Buffer; Count: Longint): Longint;

В переменную Buffer, начиная с текущей позиции в файле, записывается число байтов, указанное в параметре Count. Функция возвращает реально считанное число байтов. Запись данных осуществляется с помощью метода

function Write(const Buffer; Count: Longint): Longint;

Число байтов, указанное в параметре Count, записывается из переменной Buffer в текущую позицию в файле. Функция возвращает реально записанное число байтов. Метод

function Seek(Offset: Longint; Origin: Word): Longint;

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

Собственных свойств у класса TFileStream нет. Он наследует два свойства класса THandleStream: сам идентификатор Handle и свойство Size, определяющее длину файла в байтах. Еще одно свойство унаследовано от класса TStream -- это текущая позиция файлового указателя, отсчитанная в байтах от начала файла (свойство Position).

Класс TFileStream наследует также ряд методов вышестоящих классов. От класса THandleStream унаследован метод

procedure SetSize(NewSize: Longint);

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

Для копирования файлов удобно применять метод

function CopyFrom(Source: TStream; Count: Longint): Longint;

базового класса TStream. Первый параметр -- поток-источник, из которого берется число байтов, заданное параметром Count, и копируется в текущий объект. При этом автоматически выполняются операции по временной буферизации данных. [1]

Глава 3. Работа с базами данных в Delphi

Система Delphi ориентирована на разработку бизнес-приложений и организацию управления базами данных, и в этой сфере она - несомненный лидер. Огромное количество средств, от визуальных компонентов до динамически вызываемых функций и процедур, делают эту систему чрезвычайно гибкой. [3]

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

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

В состав Delphi входят компоненты, позволяющие создавать программы работы с файлами данных, созданными различными системами. Delphi также позволяет программисту, используя утилиту Borland Datebase Desktop, создавать файлы баз данных в различных форматах.

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

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

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

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

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

В Delphi эта проблема решается путем использования псевдонима базы данных. Псевдоним - это короткое имя, поставленное в соответствие реальному, полному имени каталога базы данных.

Как правило, база данных состоит из нескольких таблиц, которые размещают в одном каталоге. Таблицу можно создать, воспользовавшись входящей в состав Delphi утилитой Borland Datebase Desktop. Перед тем, как приступить к созданию таблиц новой базы данных, необходимо создать псевдоним для нее.

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

1. Создание каталога.

2. Создание псевдонима.

3. Создание таблиц.

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

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

Далее при помощи утилиты Borland Datebase Desktop создается таблица. Данная утилита позволяет выполнять все необходимые при работе с базами данных действия. Она обеспечивает создание, просмотр и модификацию таблиц баз данных различных форматов. Кроме того, утилита позволяет выполнять выборку информации путем создания запросов.

Для каждого поля таблицы необходимо задать имя, тип и, если нужно, размер поля. Имя поля используется для доступа к данным. Тип поля определяет тип данных, которые могут быть помещены в поле. Одно или несколько полей можно пометить как ключевые. Ключевое поле определяет логический порядок следования записей в таблице. Также возможно задать шаблон, используя который можно контролировать правильность вводимой в поле информации и обеспечивать автоматизацию ввода данных. [4]

Заключение

Компилятор Delphi - один из самых популярных продуктов компании Borland, давший пользователям возможность программировать интерфейс Windows. Этот надежный, гибкий и быстрый инструмент построен на принципах языка Object Pascal. Именно успех Pascal - языка с легкой, продуманной архитектурой, предоставившего пользователям большую свободу в реализации своих творческих идей, - вдохновил разработчиков Borland на создание Delphi.

Компания Borland решила, что новый язык программирования должен быть визуальным, и разработка формы в нем должна вестись в интерактивном режиме. С полным правом можно сказать, что Delphi первым открыл двери в мир визуального программирования. [3]

Список литературы

1. Бобровский С.И. Delphi 7. Учебный курс. - СПб., 2003. - 736 с.

2. Катеринский Р. Ключ к окнам / Магия ПК, №2, 2002, с. 54.

3. Катеринский Р. Delphi - ключ к окнам / Магия ПК, №12, 2001, с. 62.

4. Культин Н.Б. Основы программирования в Delphi 7. - СПб., 2003. - 608 с.

5. Маран М.М. Delphi. Начальный курс. - М., 2002. - 100 с.

6. Могилев А.В. и др. Информатика. - М., 2000. - 816 с.

Размещено на Allbest.ru

...

Подобные документы

  • История развития, характеристика, предназначение и особенности языка программирования Delphi. Разработка проекта создания кроссворда на объектно-ориентированном языке Delphi, который состоит из 19 вопросов по горизонтали и 16 вопросов по вертикали.

    курсовая работа [970,5 K], добавлен 15.05.2014

  • Приемы и правила объектно-ориентированного программирования с использованием языка С++. Общие принципы разработки объектно-ориентированных программ. Основные конструкции языка С++. Разработка различных программ для Windows с использованием WIN32 API.

    учебное пособие [1,6 M], добавлен 28.12.2013

  • Предмет объектно-ориентированного программирования и особенности его применения в средах Паскаль, Ада, С++ и Delphi. Интегрированная среда разработки Delphi: общее описание и назначение основных команд меню. Процедуры и функции программы Delphi.

    курсовая работа [40,8 K], добавлен 15.07.2009

  • Анализ объектно-ориентированного программирования, имитирующего способы выполнения предметов. Основные принципы объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм. Понятие классов, полей, методов, сообщений, событий.

    контрольная работа [51,7 K], добавлен 22.01.2013

  • Ознакомление с историей создания и особенностями объектно-ориентированного языка программирования Delphi. Разработка приложения, фиксирующего количество повторений какого-либо слова в тексте, введённом в поле MEMO. Описание интерфейса программы.

    курсовая работа [880,1 K], добавлен 21.04.2015

  • Разработка программы по оформлению заказов на билеты Оренбургского государственного областного драматического театра им. Горького. Использование объектно-ориентированного программирования и реализация проекта в среде визуального программирования Delphi 7.

    курсовая работа [6,3 M], добавлен 12.11.2014

  • Вычисление выражений, использование стандартных функций; работа с графикой. Порядок действий при вычислении, способы ввода данных с клавиатуры. Построение таблиц функций. Организация циклов в программе, итерационные процессы. Работа с массивами чисел.

    контрольная работа [614,7 K], добавлен 16.09.2012

  • Особенности создания программы "Файловый менеджер" в среде объектно-ориентированного программирования Delphi. Назначение и основные функции программы, формулировка задачи. Описание программы, использованные компоненты, интерфейс и порядок применения.

    контрольная работа [1,3 M], добавлен 19.06.2012

  • Характеристики и свойства языков программирования. Исследование эволюции объектно-ориентированных языков программирования. Построение эволюционной карты механизмов ООП. Разработка концептуальной модели функционирования пользовательского интерфейса.

    курсовая работа [2,6 M], добавлен 17.11.2014

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

    лабораторная работа [243,9 K], добавлен 09.01.2009

  • Особенности разработки приложений для операционной системы с помощью императивного, структурированного, объектно-ориентированного языка программирования Delphi. Формальное начало программы. Выделение конца программного блока. Листинг и описание программы.

    курсовая работа [1,2 M], добавлен 04.08.2014

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

    курсовая работа [2,2 M], добавлен 20.09.2014

  • Использование объектно-ориентированной методологии при программировании математических процессов. Среда языка программирования Delphi для решения математических задач. Объектно-ориентированные, декларативные и императивные языки программирования.

    дипломная работа [1,8 M], добавлен 14.09.2011

  • Использование скриптового языка программирования для разработки web-приложений (сценариев). Изучение основ объектно-ориентированного программирования в языке PHP. Ознакомление со специальными методами для работы с классами. Назначение интерфейсов.

    контрольная работа [25,1 K], добавлен 14.03.2015

  • Рассмотрение основ использования информационных технологий в гостиничном бизнесе. Выбор системы управления базами данных. Описание информационной технологии. Выполнение программной реализации в среде объектно-ориентированного программирования Delphi 7.

    курсовая работа [2,1 M], добавлен 24.09.2014

  • Общая характеристика объектно-ориентированного подхода в программировании, его основные свойства и принципы. Разработка программы для автоматизация деятельности кафе на основе объектно-ориентированного подхода, проектирования и реализации схемы данных.

    курсовая работа [1,2 M], добавлен 22.01.2012

  • Разработка клиентского приложения для информационной системы "Работа торгового склада" с помощью языка объектно-ориентированного программирования Delphi 6 и технологии InterBase Express. Описание реляционной модели данных и этапы ее проектирования.

    курсовая работа [1,0 M], добавлен 19.03.2009

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

    реферат [21,0 K], добавлен 13.01.2015

  • Разработка программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Класс программы, инструкция по использованию программы.

    курсовая работа [1,0 M], добавлен 26.12.2013

  • Системы визуального объектно-ориентированного программирования. Среда разработки Delphi. Microsoft Access как система управления базами данных реляционного типа. Структурированный язык запросов SQL. Программирование базы данных Библиотечного фонда.

    курсовая работа [2,5 M], добавлен 08.01.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.