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

Методичка

.pdf
Скачиваний:
15
Добавлен:
17.02.2016
Размер:
972.86 Кб
Скачать

Введение

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

Проблема автоматизации расчетов в нефтегазовой сфере, как и в любой другой, это тема, не теряющая своей актуальности. Данные методические указания разработаны для обучения студентов быстрой разработке приложений, которая позволяет составлять расчетно-графические программы в среде Delphi. Turbo Delphi — интегрированная среда разработки (IDE), разработанная компанией CodeGear, основанная на языке программирования Delphi, который является диалектом языка Object Pascal.

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

1

Тема 1. Среда быстрой разработки приложений Delphi

Delphi – среда разработки программного обеспечения (ПО) для

Microsoft Windows на языке Delphi (ранее носившем название Object Pascal), созданная первоначально фирмой Borland и на данный момент принадлежащая и разрабатываемая Embarcadero Technologies.

Запустим Delphi. При загрузке Delphi вы видите стартовую страницу. Для создания нового проекта необходимо из главного меню Delphi

запустить «File»→«New»→«VCL Form Application-Delphi» (рис. 1.1).

Рис. 1.1. Создание нового проекта.

При выполнении этих действий создастся новый проект. Окно с новым проектом показано на рис. 1.2.

Рассмотрим основные части среды разработки Delphi.

1.Главное меню Delphi.

2.Кнопки компиляции. При нажатии на кнопку «Run» компилируется и запускается разработанное приложение. Нажатием кнопки «Stop» приложение закрывается и происходит возврат в среду разработки Delphi.

3.Конструктор формы. Здесь мы визуально видим, как будет выглядеть форма программы, здесь мы будем создавать интерфейс, перенося на форму различные компоненты, и расставляя их таким образом, чтобы интерфейс выглядел привлекательным. Нам часто придется переключаться между конструктором форм и редактором кода, делается это клавишей F12 или переключением вкладок «Code» и «Design».

4.Объектный инспектор. Он предназначен для управления объекта-

2

ми проекта и состоит из двух вкладок – Properties (Свойства) и Events (События).

Если окно объектного инспектора отсутствует, можно запустить его вручную из пункта главного меню «View» →«Object inspector», или нажав клавишу F11.

Рис. 1.2. Новый проект Delphi

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

Standard – все эти компоненты являются аналогами компонентов

Windows.

Additional – дополнительные компоненты.

Win32 – компоненты, которые есть только в семействе ОС Win32.

В это семейство входят Windows 9x, Windows ME, Windows 2000, Windows NT, Windows XP.

System – системные компоненты, с помощью которых облегчается доступ к системе.

3

Data Access – компоненты доступа к базам данных.

Data Controls – компоненты для работы с базами данных.

dbExpress – компоненты доступа к базам данных, которые пришли на смену BDE.

Если окно палитры компонентов отсутствует, можно запустить его вручную из пункта главного меню «View» →«Tool palette.

6. Вкладки переключения между окном формы «Design», где отображается внешний вид разрабатываемого приложения и текстовым редактором кода «Code», в котором мы видим исходный код программы, создаваемый автоматически самой Delphi. Тут же мы будем вводить наш собственный код (рис. 1.3).

Рис. 1.3. Редактор кода

7. Дерево объектов. Здесь мы видим, какой именно объект в данный момент является текущим (активным). Это окно будет особенно полезно, когда на форме появится множество компонентов.

Сохранение проекта.

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

Выбираем команду меню «File»→«Save All» (сохранить все), либо нажимаем горячие клавиши «Shift+Ctrl+S», либо нажимаем одноименную кнопку на панели инструментов.

4

Рис. 1.4. Кнопки Save (Сохранить) и Save All (Сохранить всё) на панели инструментов

Затем выходит окно с предложением сохранить модуль – текстовый файл с исходным кодом, принадлежащий форме. Файл имеет расширение *.pas. Имеем в виду, что каждый проект сохраняется в отдельную папку, поэтому вначале щелкнем правой кнопкой мыши по свободному месту окна с папками, и выберем команду "Создать – Папку". Дадим папке какоелибо имя, например, "01". После создания папки открываем ее.

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

Затем нам будет предложено дать имя проекту в целом. Имя проекта будет совпадать с именем исполняемого программного файла. Нажмем кнопку "Сохранить".

Далее нам необходимо скомпилировать программу, то есть, перевести исходный код в выполняемый exe-файл. Для этого мы можем выбрать команду меню «Run» → «Run», либо нажать горячую клавишу F9, либо нажать кнопку «Run» на панели инструментов (на кнопке изображение зеленой стрелки, указывающей вправо). Выполняемая программа имеет точно такой же вид, как наша главная форма, только на форме отсутствует точечная сетка, предназначенная для облегчения дизайна. Окно полученной программы содержит все стандартные кнопки Windows – программы. Щелкнув по красному крестику в правой верхней части окна, закройте программу (но не Delphi), и вы увидите прежнюю форму.

Обратите внимание, что свойства в Объектном Инспекторе принадлежат выделенному в данный момент компоненту. Выделяются компоненты простым щелчком мыши. Имейте в виду, что щелкать нужно один раз. Двойной щелчок создаст обработчик события – процедуру. Если вы ошибочно создадите, таким образом, процедуру, то просто сохраните проект, ничего в нее не вписывая – при сохранении последние пустые процедуры автоматически удаляются. Удалять их вручную не рекомендуется.

Для отображения различных надписей на форме используются в основном компоненты Label, StaticText. Эти два компонента — метки, специально предназначенные для отображения текстов.

Тексты, отображаемые в перечисленных компонентах, определяются значением их свойства Caption. Его можно устанавливать в процессе проектирования в объектном инспекторе, (вкладка Properties) или задавать и изменять программно во время выполнения приложения. Например:

Label1.Caption: = 'Новый текст';

5

Таблица 1.1 Обзор наиболее часто используемых компонентов и их основных свойств

Компонент

Тип

Описание

 

 

 

 

 

Позволяет конструировать и создавать полосу

Главное меню

MainMenu

главного меню формы и выпадающие меню. Ком-

 

понент невизуальный.

 

 

 

 

Позволяет конструировать и создавать всплываю-

Всплывающее

PopupMenu

щие контекстные меню, возникающие при нажатии

пользователем правой кнопки мыши. Компонент

 

меню

 

 

невизуальный.

 

 

 

 

Используется для размещения на формах и других

Метка

Label

контейнерах текста, который не изменяется поль-

 

зователем. Компонент визуальный.

 

 

 

 

Используется для ввода пользователем одностроч-

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

Edit

ных текстов. Может использоваться для отображе-

 

ния текста. Компонент визуальный.

рования

 

 

 

Многострочное

Memo

Используется для ввода и отображения много-

строчных текстов. Компонент визуальный.

окно редактиро-

 

 

 

вания

 

 

 

 

Используется для создания кнопок, которыми

Командная

Button

пользователь выбирает команды в приложении.

 

Компонент визуальный.

кнопка

 

 

 

Контрольный

Checkbox

Позволяет пользователю включать и выключать

различные опции. Компонент визуальный.

индикатор с

 

 

 

флажком

 

 

 

 

Предлагают пользователю набор альтернатив, из

 

 

которых выбирается одна. Набор реализуется тре-

Радиокнопка

RadioButton

буемым количеством радиокнопок, размещенных в

 

одном контейнере (форме, панели и т.п.). Компо-

 

 

 

 

нент визуальный.

 

 

Используется для отображения текстовой инфор-

Таблица строк

StringGrid

мации в таблице из строк и столбцов. Компонент

 

визуальный.

 

 

Таблица рисун-

DrawGrid

Используется для отображения в строках и столб-

цах нетекстовых данных. Компонент визуальный.

 

ков

 

 

 

 

 

Используется для отображения графики: пикто-

Изображение

Image

грамм, битовых матриц и метафайлов. Компонент

 

визуальный.

 

 

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

6

состоящего из нескольких фрагментов, можно использовать операцию «+», которая для строк означает их склеивание (конкатенацию). Например, если в программе имеется целая переменная I, отображающая число сотрудников некоторой организации, то вывести в метку Label1 информацию об этом можно оператором:

Label1.Caption: = 'Число сотрудников: '+IntToStr(I);

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

Для метки Label цвет и шрифт – единственно доступные элементы оформления надписи. Компонент StaticText имеют кроме того свойство BorderStyle, определяющее рамку текста – бордюр.

В компонентах Edit и MaskEdit вводимый и выводимый текст содержится в свойстве Text. Это свойство можно устанавливать в процессе проектирования или задавать программно. Выравнивание текста, как это имело место в метках, невозможно. Перенос строк тоже невозможен. Текст, не помещающийся по длине в окно, просто сдвигается и пользователь может перемещаться по нему с помощью курсора.

При использовании окон редактирования для вывода, ввода и редактирования чисел необходимо использовать функции взаимного преобразования строк и чисел. Для вывода это описанные при рассмотрении меток функции FloatToStr и IntToStr. При вводе это функции StrToFloat –

преобразование строки в значение с плавающей запятой, и StrToInt – преобразование строки в целое значение. Если вводимый текст не соответствует числу (например, содержит недопустимые символы), то функции преобразования генерируют исключение EConvertError.

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

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

Основные свойства компонента StringGrid:

Свойства ColCount и RowCount определяют соответственно число столбцов и строк, свойства FixedCols и FixedRows – число фиксированных, не прокручиваемых столбцов и строк. Цвет фона фиксированных ячеек определяется свойством FixedColor. Свойства LeftCol и TopRow определяют соответственно индексы первого видимого на экране в данный момент прокручиваемого столбца и первой видимой прокручиваемой строки.

7

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

ных линий в фиксированных (goFixedVertLine и goFixedHorzLine) и не фиксированных (goVertLine и goHorzLine) ячейках, возможность для пользователя изменять с помощью мыши размеры столбцов и строк

(goColSizing и goRowSizing), перемещать столбцы и строки (goColMoving

и goRowMoving) и многое другое. Важным элементом в свойстве Options является goEditing – возможность редактировать содержимое таблицы.

Свойство

Cells[ACol, ARow: Integer]: string - строка, содержащаяся в ячейке с индексами столбца и строки ACol и ARow.

Например код

StringGrid1.Cells[1,1]:=’Текст’;

выводит в ячейку таблицы с именем StringGrid1, расположенную на пересечении первого столбца с первой строкой надпись Текст. Необходимо отметить, что нумерация строк и столбцов в компоненте StringGrid начинается с нуля.

Тема 2. Переменные и константы

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

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

Место описания данных в программе – вне логических блоков begin / end. В модуле перед ключевым словом implementation есть блок описания:

var

Form1: TForm1;

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

Команда объявления переменных в языке Delphi: var имя_переменной : тип_переменной;

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

var A, B, C : Integer;

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

8

var повторно можно не указывать: var A, B : Integer;

C, D : String;

Постоянную величину иначе называют константой. Конечно, в программе можно использовать числа и строки непосредственно: 3.1415 или 'Это значение числа пи', но иногда удобнее присвоить их идентификатору. Описание констант аналогично описанию переменных, но используется ключевое слово const, за именем идентификатора следует тип, затем знак равенства и его значение. Причём тип константы допускается не указывать:

const pi=3.1415;

ZnakPi : String = 'Это значение числа пи';

К слову, константа Pi встроенная в Delphi, то есть для того чтобы использовать в Delphi число 3,1415... в расчётах, нужно просто присвоить встроенную константу Pi переменной типа Real или просто использовать непосредственно в выражениях.

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

Строкой называется последовательность символов, заключённая в одиночные кавычки (апострофы):

'это текстовая строка'

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

Самый популярный строковый тип – String. Строка типа String может содержать переменное количество символов объёмом до 2 Гбайт. Если нужно ограничить размер строки фиксированным значением, то после ключевого слова String в квадратных скобках указывается число, определяющее количество символов в строке: String. Более полно работа со строками Delphi описывается далее.

Одиночный символ имеет тип Char и записывается в виде знака в одиночных кавычках: 'a'. Есть символы, которые на экране отобразить невозможно, например, символ конца строки (#13), символ переноса строки (#10). Такие символы записываются в виде их числового кода (в кодировке ANSI), перед которым стоит знак #. Например, #0.

Числа бывают целые и дробные. В табл. 2.1 перечислены стандартные типы целых чисел и соответствующие им диапазоны допустимых значений.

Наиболее удобным для использования в программах является тип Delphi Integer. Другие целые типы используются для уменьшения места, занимаемого данными в памяти компьютера.

9

 

 

Таблица 2.1

Типы данных целочисленных переменных

 

 

Тип данных

Диапазон

 

 

 

Integer

-2147483648

... +2147483647

Cardinal

0 ... 4294967295

Shortint

-128

... +127

Smallint

-32768

... +32767

Int64

-263 ... +263-1

Byte

0 ... +255

Word

0 ... +65535

Дробные числа имеют дробную часть, отделяемую десятичной точкой. Допускается использование символа e (или E), за которым следует число, указывающее, что левую часть нужно умножить на 10 в соответствующей степени: 5e25 - пять умножить на десять в двадцать пятой степени.

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

 

Таблица 2.2

Типы данных переменных с плавающей точкой

 

 

Тип данных

Диапазон

Real

5*10-324 ... 1.7*10308

Real48

2.9*10-39 ... 1.7*1038

Single

1.5*10-45 ... 3.4*1038

Double

5*10-324 ... 1.7*10308

Extended

3.6*10-4951 ... 1.1*104932-1

Comp

-263 ... +263-1

Currency

922337203685477.5807

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

Следующим типом данных является логический Boolean, состоящий всего из двух значений: True (Истина) и False (Ложь). При этом True >

False.

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

10