Кафедра: Автоматика и информационные технологии
КУРСОВАЯ РАБОТА
На тему: "Основы программирования в среде Delphi 7.0"
Екатеринбург, 2009 год
Содержание
Введение
1. Основные понятия объектно-ориентированного программирования.
2. Интегрированная среда разработки Delphi: назначение и общее описание среды
3. Общая организация программы в Delphi
4. Некоторые справочные сведения для работы в среде Delphi
Заключение
Список литературы
Введение
Допускаю, что вы пока еще не слышали этого названия. Хотя, быть может, и слышали. Delphi – это греческий город, где жил дельфийский оракул. И этим именем был назван новый программный продукт с феноменальными характеристиками.
Hадо отметить, что к моменту выхода продукта обстановка вокруг компании Borland складывалась не лучшим для нее образом. Поговаривали о возможной перепродаже компании, курс акций компании неудержимо катился вниз. Сейчас уже можно без всяких сомнений утверждать, что период трудностей позади. Hеверно, конечно, было бы говорить, что только Delphi явился причиной восстановления компании; кроме Delphi, у Borland появились и другие замечательные продукты, так же, как и Delphi, основывающиеся на новых, появившихся недавно у компании Borland, технологиях. Яимеюввидуновые BDE 2.0, BC++ 4.5, Paradox for Windows 5.0, dBase for Windows 5.0, BC++ 2.0 for OS/2.
Тем не менее, именно Delphi стал тем продуктом, на примере которого стало ясно, что у Borland есть еще порох в пороховницах, и что один единственный продукт может настолько удачно сочетать несколько передовых технологий.
1. Основные понятия объектно-ориентированного программирования
Объектно-ориентированное программирование
(ООП) зародилось в языках программирования Паскаль, Ада, С++. До появления ООП технология создания компьютерных программ базировалась на процедурном программировании, в котором основой программ являлись функции и процедуры, т.е. действия. Созданная т.о. компьютерная программа отличалась четким алгоритмом работы – последовательностью действий по достижению поставленной цели. В ООП основной точкой опоры при проектировании программы является – объект
. Программа ООП
– это не последовательность операторов, а совокупность объектов и способов их взаимодействия. Обмен информацией между объектами происходит посредством сообщений
.
1) Объектом
назовем понятие, абстракцию или любой предмет с четко очерченными границами, который имеет смысл в контексте рассматриваемой прикладной проблемы. Объекты могут наследовать характеристики и поведение других объектов, называемых родительскими или предками. Наличие механизма наследования является самым существенным различием между обычным программированием на Pascal ООП программированием в Delphi.
2) Основным понятием ООП является понятие класса: классом
– называют особую структуру, которая может иметь в своем составе поля, методы и свойства. Класс – это множество объектов, которые обладают внутренними свойствами, присущими любому объекту класса. Причем специфика класс проводится путем определения его внутренних свойств (классообразующие признаки). Класс выступает в качестве объектного типа данных. Классы имеют поля (как тип данных Record), свойства (напоминающие поля, но имеющие дополнительные описания) и методы (подпрограммы, которые обрабатывают поля и свойства класса). Базовым классом для всех объектов в Delphi, является класс TObject
.
Этот класс инкапсулирует основные функции, свойственные всем объектам Delphi. Все классы в Delphi являются прямыми или косвенными наследниками этого класса.
3) Иерархия объектов класса
. Каждый конкретный класс имеет свои особенности поведения и характеристик, определяющих этот класс. Например, класс геометрических фигур можно разделить на два подкласса: плоские и объемные фигуры. Плоские фигуры могут иметь вершины и не иметь их. Плоскими фигурами, не имеющими вершин, являются окружности и эллипсы.
При использовании ООП следует помнить, что если характеристика однажды определена, то все категории, расположенные ниже данного определения, тоже будут содержать эту характеристику. Поэтому, если определена окружность, то нет необходимости узнавать сколько у нее вершин, т. к. она относится к подклассу фигур, не имеющих вершин.
4) Наследование
. В терминах Паскаль объект наиболее схож с типом Record, который является структурированным типом для объединения нескольких связанных элементов под одним именем. Предположим, что требуется написать программу, которая подсчитывает размер стипендий и заработной платы в институте или университете. Переменная (назовем ее TPerson
), содержащая данные об именах студентов и сотрудников, дате и размере выплат, могла бы выглядеть следующим образом:
TPerson
= Record
Name: String [30]; {поле – имя}
Date: String [10]; {поле – дата}
RazV: Real; {поле – размервыплаты}
End
;
Каждое значение, присвоенное переменной TPerson
, является экземпляром типа record, представляет два уровня абстракции, т.е. можно рассматривать поля Имя, Дата, Размер_выплат по отдельности, или в совокупности для описания конкретного человека как TPerson.
Предположим, что программа должна учитывать выплаты денег студентам и сотрудникам. В каждой группе выплаты производятся особым способом. Можно создать другой тип записи для группы студент. Для получения данных о том, сколько денег должен получать студент, необходимо знать его средний балл, можно построить запись TStudent
вида:
TStudent
= Record
Name: String [30];
Date: String [10];
RazV: Real;
Ball: Real; {среднийбалл}
End
;
Однако можно сохранить тип TPerson путем создания поля Student
типа TPerson внутри типа TStudent.
TSudent
= Record
Student: TPerson;
Ball: Real;
End
;
Такая конструкция удобна и проста, поэтому постоянно используется в программировании. Для студента тип TStudent должен содержать все поля, которые имеются в записи TPerson, при этом тип TStudent является типом потомком для типа TPerson. TStudent наследует все, что принадлежит TPerson, и кроме того, содержит новые поля, которые делают TSudent уникальным.
Процесс, с помощью которого один тип наследует характеристики другого типа, называется наследованием. В Delphi все классы являются потомками класса TObject. В примере два связанных типа объектов могли бы определяться следующим образом:
TPersonal
= Object
Name: String [30];
Date: String [10];
RazV: Real;
End
;
5) Операции и методы
. Функция (или преобразование), которую можно применять к объектам данного класса, называется операцией. Если одна и та же операция применяется к объектам разного класса, то ее называют полиморфной. Обычно при работе с записями возникает проблема инициализации полей записи. Для присвоения полям, в рассмотренном ранее примере, начальных значений можно использовать оператор With, но при необходимости инициализировать более одной записи придется использовать большое число операторов With, которые будут выполнять одни и те же действия. Поэтому естественным является создание инициализирующей процедуры, которая обобщает применение оператора with к любому экземпляру типа TPerson, передаваемого в качестве параметра:
Procedure Init
(var Person: TPerson; N, D: String; R: Real);
Begin
With Person do begin
Name: = N;
Date: = D;
RazV: = R;
End;
End
;
Процедура Init, включенная в объект специально для обслуживания типа TPerson, называется методом, т.е. метод
– это процедура или функция, включенная в объект таким образом, что экземпляр данного типа становится доступным для нее изнутри. Поля и методы являются двумя составными частями новой структуры, называемой объектом. С учет вышесказанного объект TPerson можно описать следующим образом:
Type
Tperson = Object;
Name: String [30];
Date: String [10];
RazV: Real;
Procedure Init (N, D: String; R: Real);
End;
Procedure TPerson. Init (N, D: String; R: Real);
Begin
Name: = N;
Date: = D;
RazV: = R;
End
;
Таким образом, каждой операции соответствует метод – реализация этой операции для объектов данного класса. Каждая операция имеет один неявный аргумент – объект, к которому она применяется. Выбор метода связан только с классом и объектом. Теперь для инициализации экземпляра типа TStudent достаточно просто вызвать его метод:
Var
Person: TPerson;
Person. Init (» НиколайИванович ‘, ‘25–06–1995 ‘, 40000);
6) Определение методов
. Процесс определения методов напоминает создание модулей в TurboPascal. Внутри объекта метод определяется заголовком процедуры или функции, действующей как метод:
Type
Tperson = Object;
Name: String [30];
Date: String [10];
RazV: Real;
Procedure Init (N, D: String; R: Real);
Function GetName: String;
Function GetDate: String;
FunctionGetRazV: Real;
End
;
Поля данных должны быть объявлены перед объявлением методов. Сами методы описываются вне определения объекта как отдельная процедура или функция. При определении метода его имени должно предшествовать имя типа объекта, которому принадлежит данный метод, с последующей точкой:
Procedure TPerson. Init
(N, D: String; R: Real);
Begin
Name: = N;
Date: = D;
RazV: = R;
End;
Function TPerson. GetName: String;
Begin
GetName: = N;
End;
Function TPerson. GetDate: String;
Begin
GetDate: = D;
End;
Function TPerson. GetRazV: Real;
Begin
GetRazV: = R;
End
;
7) Свойства объекта
. Совокупность данных и методов их чтение и записи называются свойством. Свойства объектов можно устанавливать в процессе проектирования, а также можно изменять программно во время выполнения программы. (В процессе проектирования приложений в среде программирования Delphi можно просматривать значения некоторых из этих данных в окне Инспектора Объектов и изменять эти значения).
8) События и их обработка
. Средой взаимодействия объектов являются сообщения
, генерируемые в результате наступления различных событий. Событие
– это взаимодействие на объект. Событие наступает в результате действий пользователя (перемещение курсора, нажатие кнопки и т.п.). В каждом объекте определено множество событий, на которые он может реагировать. В конкретных объектах могут быть определены обработчики каких-то из этих событий. К написанию этих обработчиков и сводится основное программирование с помощью Delphi.
Таким образом, можно определить объект как совокупность свойств и методов, а также событий, на которые он может реагировать. Внешнее управление объектом осуществляется через обработчики событий. Эти обработчики обращаются к методам и свойствам объекта. Начальные значения данных объекта могут задаваться также в процессе проектирования установкой различных свойств. В результате выполнения методов объекта могут происходить новые события, воспринимаемые другими объектами программы или пользователем.
Delphi – это потомок среды программирования TurboPascal. Название среды произошло от названия города в Древней Греции, где находился знаменитый Дельфийский оракул (храм Аполлона в городе Дельфы, жрецы которого занимались предсказаниями).
Система визуального объектно-ориентированного проектирования Delphi позволяет:
1. Создавать законченные приложения для Windows самой различной направленности.
2. Быстро создавать профессионально выглядящий оконный интерфейс для любых приложений; интерфейс удовлетворяет всем требованиям Windows и автоматически настраивается на ту систему, которая установлена, поскольку использует функции, процедуры и библиотеки Windows.
3. Создавать свои динамически присоединяемые библиотеки компонентов, форм, функций, которые потом можно использовать из других языков программирования.
4. Создавать мощные системы работы с базами данных любых типов.
5. Формировать и печатать сложные отчеты, включающие таблицы, графики и т.п.
6. Создавать справочные системы, как для своих приложений, так и для любых других.
7. Создавать профессиональные программы установки для приложений Windows, учитывающие всю специфику и все требования операционной системы.
Delphi – быстро развивающаяся система. Первая версия Delphi была выпущена в феврале 1995 года, в 1996 году вышла вторая версия, 1997 – третья, 1998 – четвертая, 1999 – пятая, 2001 – шестая. Все версии, начиная с Delphi 2.0, рассчитаны на разработку 32-разрядных приложений, т.е. приложений для операционных систем Windows 95/98, NTи т.д. В 2002 году вышла седьмая версия, основным нововведением в которой были Интернет-технологии.
Общее описание среды.
Интегрированная среда разработки Delphi – это среда, в которой есть все необходимое для проектирования, запуска и тестирования создаваемых приложений. Большинство версий Delphi выпускается в нескольких вариантах: а) стандартная, б) профессиональная версия, в) разработка баз данных предметных областей. Эти варианты различаются, в основном разным уровнем доступа к системам управления базами данных. Последние два варианта являются наиболее мощными в этом отношении. Библиотеки компонентов в различных вариантах практически одинаковы.
1) Верхней части окна среды отображается полоса главного меню
. Назначение каждого пункта меню можно уточнить в справочной системе Delphi. Для получения справки следует выбрать интересующий пункт меню и нажать клавишу F1. Выбор команды меню выполняется любым из стандартных способов: F10, Alt+горячая клавиша или щелчком мыши на нужном пункте меню.
Назначение команд меню
представлены в таблице:
Раздел меню
|
Назначение
|
1) Меню File (Файл) |
Разделы меню позволяют создавать новый проект, новую форму, открыть ранее созданный проект или форму, сохранить проекты или форму в файлах с заданными именами. |
2) Меню Edit (Правка) |
Разделы этого меню позволяют выполнять обычные для приложений Windows операции с буфером обмена, а также дают возможность выравнивать группы размещенных на форме компонентов по размерам и местоположению. |
3) Меню Search (Поиск) |
Разделы этого меню позволяют осуществлять поиск фрагментов текста, ошибок, объектов, модулей, переменных и символов в редакторе кода. |
4) Меню View (Вид) |
Разделы этого меню позволяют вывести на экран или скрыть различные элементы среды проектирования и открыть окна, связанные с интегрированным отладчиком. |
5) Меню Project (Проект) |
Разделы меню позволяют добавлять и удалять из проекта формы, задавать опции проекта, компилировать проект без его выполнения, дать информацию о размерах приложения. |
6) Меню Run (Выполнить) |
Предоставляет возможность выполнять проект в нормальном или отладочном режимах, по шагам, останавливаясь в указанных точках, просматривая значения переменных и т.д. |
7) Меню Component (Компонент) |
Содержит раскрывающееся меню, которое позволяет работать с компонентами: создавать новые компоненты, изменять палитру компонентов и т.п. |
8) Меню Database (База данных) |
Раздел меню позволяет использовать инструментарий для работы с базами данных. |
9) Меню Tools (Сервис) |
Включает ряд разделов, позволяющих выполнять различные вспомогательные программы: редактор изображений, программы, конфигурирующие базы данных и сети и т.п. |
10) Меню Windows (Окно) |
Содержит список открытых окон среды и предоставляет возможность перехода из одного окна в другое. |
11) Меню Help (Помощь) |
Содержит разделы, помогающие работать со справочной системой среды программирования Delphi. |
2) Ниже полосы главного меню расположены две инструментальные панели
. Левая панель
(состоящая, в свою очередь, из трех панелей) содержит два ряда кнопок, дублирующих некоторые наиболее часто используемые команды меню (открыть, сохранить, сохранить все и т.д.). Правая панель
содержит панель библиотеки визуальных компонентов (или палитра). Палитра
компонентов содержит ряд страниц, закладки которых видны в ее верхней части. Страницы сгруппированы в соответствии с их смыслом и назначением. Поскольку число предоставляемых компонентов растет от версии к версии, то остановимся на основных (12 страниц).
Основные Палитры компонентов
представлены в таблице:
Палитра компонентов
|
Назначение
|
1. Палитра компонентов Standard (Стандартная) |
Большинство компонентов на этой странице являются аналогами экранных элементов операционной системы Windows: меню, кнопки, полосы прокрутки, панели и т.п. Имена компонентов можно узнать из всплывающей подсказки. Назначение компонентов можно уточнить, используя систему контекстной справки Delphi. |
2. Палитра компонентов Additional (Дополнительная)
|
Содержит более развитые компоненты: а) воспроизведение звука, музыки и видео; б) отображение графической информации. |
3. Палитра компонентов System (Системная) |
Предоставляет возможность объединять отдельные элементы, такие как списки каталогов и файлов, а также генерировать события через определенные промежутки времени.
|
4. Палитра компонентов Win32 |
Содержит компоненты, позволяющие созданным программам использовать интерфейс Windows.
|
5. Палитра компонентов Dialogs (Диалоговая) |
Содержит стандартные диалоговые окна для операций над файлами, поиска и замены текста, выбор шрифтов, цветов и т.д.
|
6. Палитра компонентов DataAccess, DataControls (Сервис баз данных) |
Использует механизм баз данных для организации доступа к файлам баз данных различных форматов. |
7. Палитра компонентов QReport (Отчеты) |
Предоставляет компоненты для визуального проектирования отчетов баз данных.
|
8. Палитра компонентов Servers (Сервис) |
Предоставляет компоненты-наследники для доступа ко всем серверным объектам MicrosoftOffice. |
9. Палитра компонентов Samples (Примеры) |
Содержит компоненты-примеры, которые можно добавлять в собственные приложения.
|
10. Палитра компонентов Internet |
Предоставляет компоненты для разработки приложений, позволяющих создавать HTML‑файлы непосредственно из файлов баз данных и других типов, взаимодействующих с другими приложениями для Интернета. |
3) Правее полосы главного меню располагается еще одна небольшая инструментальная панель, содержащая раскрывающийся список и две кнопки. Эта панель служит для сохранения и выбора различных конфигураций окна среды, которые можно создавать и запоминать.
4) Под палитрой компонентов располагается окно формы
с размещенными на ней компонентами. Форма является основой почти всех приложений Delphi. Форму можно понимать как типичное окно Windows. Она обладает теми же свойствами, что и другие окна. Во время проектирования форма покрыта сеткой из точек. В узлах этой сетки размещаются те компоненты, которые помещены на форму. Во время выполнения приложения эта сетка не видна.
5) В основном поле окна слева находится окно Инспектора объектов
, с помощью которого в дальнейшем можно задавать свойства компонентов и обработчики событий. Инспектор объектов состоит из двух страниц, каждую из которых можно использовать для определения поведения активного компонента. Первая страница – это Свойства, вторая – События.
Рассмотрим некоторые свойства любого компонента
:
Свойство
|
Назначение
|
Caption (надпись) |
Название компонента
|
Color |
Цвет поверхности компонента
|
Font Color |
Цвет шрифта
|
Font Height |
Высота шрифта
|
Font Name |
Имя шрифта
|
Font Size |
Размер шрифта
|
StylefsBold |
Стиль надписи на компоненте – Жирный |
Style fsItalic |
Стиль надписи на компоненте – курсив |
Style fsUnderline |
Стиль надписи на компоненте – подчеркивание |
Style fsStrikeOut |
Стиль надписи на компоненте – зачеркивание |
Каждый компонент имеет свой набор свойств, который соответствует назначению этого компонента.
Страница Событий
– вторая часть Инспектора объектов. На ней указаны все события, на которые может реагировать выбранный объект.
6) Одним из наиболее важных элементов среды Delphi является окно Редактора кода
. Оно располагается ниже окна формы, обычно при первом взгляде на экран невидимо, т. к. его размер равен размеру формы и окно Редактора кода практически полностью перекрывается окном формы. Редактор кода является полноценным программным редактором. В заголовке окна редактора кода отображается имя текущего файла, с текстом которого производится работа (стандартное имя – Main.pas). В нижней части окна Редактора кода располагается строка состояния. В самой левой ее позиции отображается позиция курсора: номер строки и колонки.
7) Выше окна Инспектора объектов расположено окно Дерево объектов
, которое отображает структуру компонентов приложения с точки зрения их принадлежности друг к другу.
Примечание:
Страница событий связана с Редактором кода, если дважды щелкнуть мышью по правой стороне какого либо пункта, то соответствующий данному событию код будет автоматически помещен в окно Редактора кода.
Программа, создаваемая в среде Delphi в процессе проектирования приложения, основана на модульном принципе. Главная программа состоит из объявления списка используемых модулей и нескольких операторов, создающих объекты для необходимых форм и запускающих приложение на выполнение. Модульность очень важна для создания надежных и относительно легко модифицируемых и сопровождаемых приложений. Четкое соблюдение принципов модульности в сочетании с принципом скрытия информации позволяет производить модификации внутри любого модуля, не затрагивая при этом остальных модулей и главную программу.
Все объекты компонентов размещаются в объектах – формах. Для каждой формы, проектируемой в приложении, Delphi создает отдельный модуль. Именно в модулях и осуществляется программирование задачи. В обработчиках событий объектов размещаются описания алгоритмов, которые в основном сводятся к обработке информации, содержащейся в свойствах одних объектов, и задании по результатам этой обработки свойств других объектов.
Структура файла главной (головной) программы приложения
Delphi
.
В процессе проектирования Delphi автоматически создает код головной программы и отдельных модулей. В модули вводятся собственные коды, создавая обработчики различных событий. Но головную программу, как правило, не приходится модифицировать и даже просматривать ее текст (только в исключительных случаях).
Головной файл
приложения Delphi имеет следующую структуру:
Program
< имя >;
{объявление подключаемых модулей, а также локальных типов, классов, констант, переменных, описание локальных функций и переменных}
Begin
{операторы тела программы}
End
.
Типичная головная
программа приложения имеет следующий вид:
Program Project 1;
Uses
Forms,
Unit 1 in ‘Unit 1.pas’ {Form 1}, Unit 2 in ‘Unit 2.pas’ {Form 2};
{$R *. res}
{можно поместить описание констант, переменных, функций, процедур, доступных для использования только в пределах данного файла
}
Begin
Application. Initialize;
Application. CreateForm (TForm 1, Form 1);
Application. CreateForm (TForm 2, Form 2);
Application. Run
;
End
.
1) Программа начинается с ключевого слова program
, после которого указывается имя программы (оно совпадает с именем файла, в котором был сохранен проект). Это же имя присваивается исполняемому файлу приложения. По умолчанию используется имя Project
1.
2) После заголовка в тексте программы располагается предложение:
Uses
Forms,
Unit 1 in ‘Unit 1.pas’ {Form 1}, Unit 2 in ‘Unit 2.pas’ {Form 2};
В этом предложении перечисляются модули, загружаемые программой. Первый модуль Forms является системным, а следующие – модулями разработанными самостоятельно форм. Данный пример подразумевает, что в проекте были созданы две формы с именами Form1, Form2 в модулях Unit1, Unit2. Заключенные в фигурные скобки название форм представляют собой комментарии.
3) Следующая строка текста – {$
R
*.
res
}
– представляет собой директиву компилятора, связанную с использованием файлов ресурсов. Указанный файл должен быть файлом ресурсов Windows. По умолчанию используется расширение.RES для файлов ресурсов.
4) Первый оператор в теле программы Application
.
Initialize
; – инициализирует приложение, следующий за ним оператор Application
.
CreateForm
(TForm 1, Form 1); и Application. CreateForm (TForm 2, Form 2); – создают объекты формы1 и формы2, последний оператор Application
.
Run
; – начинает выполнение приложения.
Общая структура файла модуля:
Unit
< имя модуля >;
Interface
// Открытый интерфейс модуля (могут помещаться списки подключаемых модулей, объявление типов, констант, переменных, функций и процедур, к которым будет доступ из других модулей)
Implementation
// Реализация модуля (могут помещаться списки подключаемых модулей, объявление типов, констант, переменных, функций и процедур, к которым не будет доступа из других модулей)
Initialization
// (
Необязательный раздел – операторы выполняются один раз при первом обращении к модулю)
Finalization
// (Необязательный раздел – операторы выполняются при любом завершении работы модуля)
End
.
Рассмотрим теперь текст модуля с пустой формой:
Unit
Unit
1;
Interface
//
Открытый интерфейс модуля
Uses
{
Список
подключаемых
модулей
}
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;
Type
{Объявление класса формы}
TForm
1 =
class
(
TForm
)
Private
//
закрытый раздел класса
Public
//
открытый раздел класса
End;
Var
Form 1: TForm1;
Implementation //
Реализациямодуля
{$
R
*.
dfm
}
End
.
1) Модуль начинается с ключевого слова UNIT
, после которого указывается имя модуля. Оно совпадает с именем файла, в котором был сохранен модуль. Текс модуля состоит из двух основных разделов: открытый интерфейс модуля и реализация модуля. Внешние модули не могут видеть типы, переменные, константы, функции и процедуры, размещенные в разделе реализации.
2) После предложения USES
, содержащего список подключаемых модулей, располагается заготовка объявления класса формы. Имя класса формы – TForml. Класс содержит два раздела: открытый раздел класса (PUBLIC) – то, что объявлено в этом разделе доступно для других классов и модулей, закрытый раздел класса (PRIVATE) – то, что объявлено в этом разделе доступно в пределах данного модуля.
3) За объявлением класса формы следуют строки:
Var
Form
1:
TForm
1;
Таким образом, объявляется переменная Form1 класса TForm1.
4) Затем следует пустой раздел реализации INPLEMENTATION
, в котором содержится только директива компилятора {$R *. dfm}, обеспечивающая компоновку файлов ресурсов форм.
Файлы проекта
Delphi
.
Проект состоит из форм, модулей, установок параметров проекта, ресурсов и т.д. Вся эта информация размещается в файлах. Многие из этих файлов автоматически создаются Delphi. Ниже приведена характеристика основных файлов, используемых при создании выполняемого файла приложения.
Файлы проекта
в Delphi, представлены в таблице:
Головной файл проекта (.drp) |
Этот текстовый файл используется для хранения информации о формах и модулях. В нем содержатся операторы инициализации и запуска программы на выполнение. |
Файл модуля (.pas) |
Каждой создаваемой форме соответствует текстовый файл модуля, используемый для хранения кода. Многие из функций и процедур Delphi хранятся в модулях. |
Файл формы (.dfm) |
Это двоичный или текстовый файл, который создается для хранения информации о собственных формах. |
Файл параметров проекта (.dfo) |
В этом файле хранятся установки параметров проекта. |
Файл ресурсов (.res) |
Этот бинарный файл содержит используемую проектом пиктограмму и прочие ресурсы. |
Файл группы файлов (.bpg) |
Этот файл создается, если работать с группой проектов. |
Файл пакета (.dpk) |
Это двоичный файл пакета.
|
Файлы резервных копий (.dp, df, pa) |
Это соответственно файлы резервных копий для файлов проекта, формы и модуля. Можно соответственно изменить расширения этих файлов и таким образом вернуться к предыдущему не испорченному варианту. |
Исполняемый файл (.exe) |
Это исполняемый файл приложения. Он является автономным, для которого ничего не требуется, если не использовать поддержку пакетов времени выполнения. |
Объектный файл модуля (.dcu) |
Это откомпилированный объектный файл модуля (.pas), который компонуется в окончательный исполняемый файл. |
Некоторые встроенные функции и процедуры
Delphi
.
1) для строковых типов:
Типы строк
|
Максимальная длина
|
Используется для
|
Нулевой символ в конце
|
Short String |
255 |
Обратной совместимости |
Нет |
Ansi String |
2^31 (2 Гб) |
Символ ANSI |
Есть |
String |
Или 255, или 2 Гб |
Символ ANSI или Unicode |
Есть или нет |
Wide String |
2^30 (1 Гб) |
Символ Unicode, в серверах COM и интерфейсах |
Есть |
Родовым является тип String
, который имеет разный смысл в зависимости от директивы компилятора. Если включена директива {$H+} (она включена по умолчанию), то String интерпретируется компилятором как тип AnsiString – длинная строка с нулевым символом в конце. Если же включена директива {$H-}, то String интерпретируется компилятором как тип ShortString – короткая строка без нулевого символа в конце. Если в объявлении типа после ключевого слова String следует число символов в квадратных скобках (например, String[4]), то независимо от директив компилятора, тип трактуется как строка без нулевого символа в конце с указанным числом символов. Стандартная функция LENGTH
возвращает число символов в строке, переданной ей в качестве параметра. Процедура SetLength
устанавливает длину строки.
Процедуры и функции обработки строк:
FloadToStr
(
Value
:
Extended
):
string
Преобразует Value в строку с точностью 15 цифр.
|
IntToStr
(
Value
:
integer
):
string
Возвращает строку, содержащую преобразованное целое значение Value.
|
StrToFload
(
const
S
:
string
):
Extended
Преобразует строку S в действительное число.
|
StrToInt (const S: string): Integer
Преобразуетстроку S вцелоечисло.
|
Val (S; var V; var Code: Integer)
Преобразует строку S в целое число Code.
|
2) Функции массива:
Функция
|
Описание
|
Length |
Число элементов массива |
High |
Наибольшее значение индекса |
Low |
Наименьшее значение индекса |
3) Функции для числовых массивов:
Функция
|
Тип аргумента
|
Тип результата
|
Описание
|
MinIntValue |
Array of integer |
Integer |
Возвращает минимальное значение элемента массива целых чисел |
MaxInValue |
Array of integer |
Integer |
Возвращает максимальное значение элемента массива целых чисел |
MinValue |
Array of double |
Double |
Возвращает минимальное значение элемента числового массива |
MaxValue |
Array of double |
Double |
Возвращает максимальное значение элемента числового массива |
Sum |
Array of double |
Extended |
Возвращает сумму элементов массива |
Эти функции определены в модуле math
и этот модуль должен подключаться оператором USES, чтобы компилятор их понимал.
4) Процедуры и функции вызова диалоговых окон:
В приложениях часто приходится отображать различные простые диалоговые окна, чтобы понять какие-то указания или задать несложный вопрос, на который возможен один из стандартных ответов: да, нет, отменить, прервать. В законченном приложении желательно эти окна проектировать самостоятельно, обеспечивая единство стиля всех окон приложения, русские надписи и т.п.
А)
простейшей из таких процедур является ShowMessage
, отображающая окно сообщения с кнопкой ОК. Она имеет вид:
Procedure
ShowMessage
(
const
Msg
:
string
);
Текст сообщения задается параметром Msg. Заголовок окна совпадает с именем выполняемого файла приложения.
Б)
Похожая процедура ShowMessageFm
t, позволяет выводить в аналогичное окно форматированное сообщение. Этапроцедураимеетвид:
Procedure ShowMessageFmt (const Msg: string; Params array of const);
Параметр Msg в этой процедуре задает строку описания формата, а параметр Params задает массив параметров, форматируемых строкой Msg.
Приведем примеры использования этих процедур:
ShowMessage (» Работа приложения успешно завершена’);
ShowMessageFmt (» Задано% dпараметров из % d ‘, [N1, N2]);
Последний оператор при N1=5, N2=7 выдаст сообщение с текстом: «Задано 5 параметров из 7».
В)
Следующая функция отображает окно, в котором задается вопрос и анализируется полученный ответ – это функция MessageDlg
. Она объявляется следующим образом:
Function
MessageDlg
(
const
Msg
:
string
;
AType
:
TMsgDlgType
;
AButtons
:
TMsgDlgButtons
;
HelpCtx
:
Longint
):
Word
;
Вызов этой функции отображает диалоговое окно и ожидает ответа пользователя. Сообщение в окне задается параметром функции Msg
.
Вид окна задается параметром AType
. Возможные значения параметра:
Значение
|
Описание
|
mtConfirmation |
Окно подтверждения, содержащее зеленый вопросительный знак. |
mtInformation |
Информационное окно. |
mtError |
Окно ошибок, содержащее красный стоп-сигнал. |
mtWarning |
Окно замечаний. |
mtCustom |
Заказное окно без рисунка. Заголовок соответствует имени выполняемого файла. |
Параметр AButtons
определяет, какие кнопки будут присутствовать в окне. Возможные значения видов кнопок:
Значения
|
Описания
|
mbYes |
Кнопка с надписью ДА |
mbNo |
Кнопка с надписью НЕТ |
mbOK |
Кнопка с надписью ОК |
Приведем пример использования функции MessageDlg, иллюстрирующий диалог при окончании работы приложения:
IfMessageDlg
(» Действительно хотите закончить приложение? ‘, mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin
MessageDlg
(» Работаприложениязакончена ‘, mtInformation, [mbOk], 0);
Close;
End;
Первый вызов функции MessageDlg
приводит к отображению окна типа mtConfirmation
с вопросом о завершении приложения. Если пользователь нажимает кнопку Yes, то выводится второе окно типа mtInformation
с сообщением о завершении работы приложения.
Заключение
В первую очередь Delphi предназначен для профессионалов-разработчиков корпоративных информационных систем. Может быть, здесь следует пояснить, что конкретно имеется в виду. Не секрет, что некоторые удачные продукты, предназначенные для скоростной разработки приложений (RAD – rapid application development) прекрасно работают при изготовлении достаточно простых приложений, однако, разработчик сталкивается с непредвиденными сложностями, когда пытается сделать что-то действительно сложное. Бывает, что в продукте вскрываются присущие ему ограничения только по прошествии некоторого времени.
Delphi такие ограничения не присущи. Хорошее доказательство тому – это тот факт, что сам Delphi разработан на Delphi. Можете делать выводы. Однако Delphi предназначен не только для программистов-профессионалов. Я читал в электронной конференции совершенно неожиданные для меня письма, где учителя, врачи, преподаватели ВУЗов, бизнесмены, все те, кто используют компьютер с чисто прикладной целью, рассказывали о том, что приобрели Delphi for Windows для того, чтобы быстро решить какие-то свои задачи, не привлекая для этого программистов со стороны. В большинстве случаев им это удается. Поразительный факт – журнал Visual Basic Magazine присудил свою премию Delphi for Windows.
Руководители предприятий, планирующие выделение средств на приобретение программных продуктов, должны быть уверены в том, что планируемые инвестиции окупятся. Поэтому одним из оцениваемых факторов должен быть вопрос – а легко ли найти специалиста по Delphi и сколько будет стоить его обучение, сколько времени специалист затратит на овладение продуктом. Ответ здесь получить весьма просто – любой программист на паскале способен практически сразу профессионально освоить Delphi. Специалисту, ранее использовавшему другие программные продукты, придется труднее, однако самое первое работающее приложение он сможет написать в течение первого же часа работы на Delphi. И, конечно же, открытая технология Delphi является мощным гарантом того, что инвестиции, сделанные в Delphi, будут сохранены в течение многих лет.
Список литературы
1. Архангельский А.Я. Программирование в Delphi. Учебник по классическим версиям Delphi. – М.: ООО «Бином-Пресс», 2006. – 1152 с.: ил.
2. Архангельский А.Я. Программирование в Delphi. – М.: ООО «Бином-Пресс», 2004. – 1152 с.: ил.
3. Гофман В.Э., Хомоненко А.Д. Delphi. Быстрый старт. – СПб: БХВ-Петербург, 2003. – 288 с.: ил.
|