4703

Разработка приложений в среде Borland Delphi

Лекция

Информатика, кибернетика и программирование

Разработка приложений в среде Borland Delphi Система визуального объективно-ориентированного проектирования Delphi позволяет: создавать законченные приложения для Windows самой различной направленности, от чисто вычислительных и логических, до испол...

Русский

2012-11-24

1.47 MB

53 чел.

Разработка приложений в среде Borland Delphi

Система визуального объективно-ориентированного проектирования Delphi позволяет:

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

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

      создавать свои динамически присоединяемые библиотеки (Dll) компонентов, форм, функций, которые затем можно использовать из других языков программирования;

      создавать мощные системы работы с локальными и удаленными базами данных любых типов;

      формировать и печатать сложные отчеты, включающие таблицы, графики и т.п.;

      создавать справочные системы (файлы.hlp), как для своих приложений, так и для любых других, с которыми можно работать не только из приложений, но и просто из Windows;

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

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

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

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

Основы языка Pascal

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

В программе каждый элемент данных является либо константой, либо переменной.

Константами программе называют простейшие объекты программы, значения которых заранее известны и в процессе выполнения программы не изменяются.

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

const имя константы = значение константы;

Примеры:

const 

MaxInd: integer = 100; {Типизированная константа}
Name = ‘Петя’;   {Строковая константа}
g = 9.8;   {Вещественная константа}

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

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

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

Основные типы данных

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

В Pascal существуют четыре основных типа данных:

INTEGER

целый 

REAL

вещественный

CHAR

символьный

BOOLEAN

логический

Значением переменной типа INTEGER может быть положительное или отрицательное целое число, а также ноль. Для описания  целочисленного типа помимо типа INTEGER можно использовать  также типы BYTE, WORD, LONGINT. Для каждого из этих типов определен свой диапазон значений.

Идентификатор типа 

Диапазон значений 

Shortint (короткое целое)

-128..127

Integer (целое)

32 768..32 676

Longint (длинное целое)

-2 147 483 648.. 2 147 483 647

Byte (байт)

0..255

Word (слово)

0..65 535

Переменные и константы типа REAL используются для хранения вещественных чисел. На физическом уровне такие числа хранятся в памяти компьютера в виде мантиссы и порядка. Вместо 10 в степени, употребляется буква Е. Такая форма называется представлением чисел с плавающей запятой. Например, вещественное число 0.31415926*101 в программе будет выглядеть как  .31415926Е01,  0.1*10-3  как  .1 Е–03,  0.100002*106 как .100002Е 6.

Для описания  вещественного типа помимо типа REAL можно использовать  также типы Single , Double, Extended, Comp. Для каждого из этих типов определен свой диапазон значений.

Идентификатор типа 

Диапазон значений 

Число знач. цифр 

Количество байт 

Real 

2.9e-39..1.7e38 

11-12

6

Single 

1.5e-45..3.4e38 

7-8

4

Double 

5.0e-324..1.7e308 

15-16

8

Extended 

3.4e-4932..1.1e4932 

19-20

10

Comp 

9.2e18..9.2e18 

 

8

Описание переменных

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

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

Примеры:

var

 а: real;
 b: real;
 i: integer;

В приведенном примере объявлены две переменные типа REAL и одна переменная типа INTEGER.

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

Примеры:

var 

а,b,с: real;
xl,x2: real;

Операторы

Оператор – это такая синтаксическая единица, которая используется в программе для выполнения отдельного предписания.

Для присваивания переменной вычисленного значения используется оператор присваивания.

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

Оператор присваивания

В результате выполнения оператора присваивания переменная получает значение. Формат оператора присваивания:

<Имя Переменной> := <Выражение>,

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

После каждой инструкции программы ставится символ “точка с запятой”.

Примеры:

Counter:=0;
d:=b*b-4*a*c;
pi:=3.1415926;
z:=(rl+r2)/(rl*r2);

Выражение

Выражение состоит из операндов и операций, которые выполняются над операндами.

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

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

Арифметические выражения

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

В простейшем случае арифметическое выражение — это константа или переменная

Тип результата зависит от типа операндов. Тип константы, входящей в выражение определяется видом самой константы. Например, константы 0, 1 и -512 целого типа (INTEGER), а константы 1.0, 0.0, 3.2е-05 — вещественного типа (REAL).

Арифметические операции языка Pascal представлены в таблице:

Операция

Действие

Выражения, использующее арифметические операции

Тип операндов

Тип результата

+

Сложение

A+B, A-B, A*B

REAL

REAL

-

Вычитание

INTEGER

INTEGER

*

Умножение

INTEGER, REAL

REAL

/

Деление

A/B 

REAL

REAL

INTEGER

REAL

INTEGER, REAL

REAL 

DIV

деление нацело (отбрасывание остатка)

A DIV B

INTEGER

INTEGER

MOD

вычисление остатка от деления

A MOD B 

INTEGER

INTEGER

Примеры арифметических выражений:

123
0.001
i
А+В/С
Summa*0.75
(
В1+ВЗ+ВЗ)/100
Cena MOD 1000
(Cena DIV 1000)+Cena
(rl+r2+r3)/(rl*r2*r3)

В арифметических выражениях приняты следующие правила выполнения операций: *, /, DIV, MOD имеют более высокий приоритет, чем + и -.

Примеры:

Выражение

Программная запись

ab+cd

a*b + c*d

(a+b) / (c+d)

a+c*d/b+e/(f*g)   или   a+c*d/b+e/f/g

Строковые выражения

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

Логические выражения

Результатом выполнения логических выражений является значение True или False. Для написания простых логических выражений используются знаки отношений (=, <, >, <=, >=, <>), а для составления сложных – логические операции (Not, And,Or). Подробнее логические операции и логические выражения будут разобраны в лекции «Разветвляющие процессы».

Выполнение оператора присваивания

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

Например, в результате выполнения инструкций:

i=0

Значение переменной i становится равным нулю;

а=b+с;

Значением переменной а будет число, равное сумме значений  переменных b и с;

j=j+1;

Значение переменной j увеличивается на единицу.

Label1.Caption=’Пример’;

Задается заголовок надписи.

Edit1.Text=FloatToStr(a);

Задается значение текстового поля.

Оператор присваивания считается верным, если тип выражения соответствует, или может быть приведен к типу переменной. Переменной типа REAL можно присвоить значение выражения типа REAL или INTEGER. Переменной типа INTEGER можно присвоить значение выражения только типа INTEGER.

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

Комментарии

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

{Этот текст является комментарием}

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

Библиотечные модули Delphi содержат большое количество стандартных подпрограмм (процедур и функций). Ниже приведены наиболее часто используемые.

В приведенных ниже таблицах Real означают любой вещественный тип, Integer – любой целый, String – символьный.

Математические функции

 

Обращение

Тип параметра

Тип результата

Описание

ArcTan(x)

Real 

Real

Арктангенс (квадрант не учитывается)

Cos(x)

Real

Real

Косинус

Sin(x)

Real

Real

Синус

Ln(x)

Real

Real 

Натуральный логарифм

Exp(x)

Real 

Real 

Экспонента числа.

Abs(x)

Real|
Integer

Тип параметра

Абсолютное значение (модуль) числа

Frac(x)

Real|
Integer

Тип параметра

Дробная часть числа

Int(x)

Real|
Integer

Тип параметра

Целая часть числа

Pi 

-

-

π = 3.141592653…

Random

-

-

Псевдослучайное число, равномерно распределенное в диапазоне 0…[1]

Random(x)

Integer

Integer

Псевдослучайное целое число, равномерно распределенное в диапазоне 0…[x-1]

Randomize

-

-

Инициализация генератора псевдослучайных чисел

Round(x)

Real

Integer

Округляет число до ближайшего целого

Sqr(x)

Real

Real

Число, возведенное в квадрат

Sqrt(x)

Real

Real 

Квадратный корень числа

Trunc(x)

Real

Integer

Ближайшее целое число, меньшее или равное x, если x≥0, и большее или равное x, если x<0

Функции преобразования типов данных

Обращение

Тип параметра

Тип результата

Описание

Преобразование строк в другие типы

StrToInt(S)

String

Integer

Преобразование символов строки S в целое число

StrToFloat(S)

String

Real

Преобразование символов строки S в вещественное число

Преобразование чиселв строки

FloatToStr(x)

Real

String 

Преобразование вещественного числа x в строку

IntToStr(x)

Integer

String 

Преобразование целого числа x в строку

FloatToStrF (x,Format, precision, digits)

x-Real, Format-спецификация формата, precision- Integer, digits- Integer

String 

Преобразование вещественного числа в форматированную строку

FormatFloat (Format, x)

Format- String,
x- Real

String 

Преобразование вещественного числа в строку символов в соответствии с указанным форматом

Процедуры общего назначения

Ниже перечисленные процедуры не имеют параметров.

Обращение

Описание

Beep 

Выдает звуковой сигнал, вызывая функцию Windows Api MessageBeep

Exit 

Выполняет немедленный выход из текущей процедуры.

Break 

Выполняет немедленный выход из текущего оператора цикла for, while или repeat. Управление передается на следующий после цикла оператор.

Continue 

Прерывает текущую итерацию оператора цикла for, while или repeat и переходит на начало следующей итерации.

Общая организация программы в Delphi

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

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

Структура головной программы приложения Delphi

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

program Project1;

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

uses

 Forms,

 Unit1 in 'Unit1.pas' {Form1};

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

Данный проект состоит из одной формы с именем Form1, которая содержится в модуле Unit1.

После ключевого слова in указывается имя файла, в котором содержится модуль Unit1.

{$R *.res}

Эта строка представляет собой директиву компилятора, которая связывает с исполняемым модулем файлы ресурсов Windows (.Dfm, .Res). По умолчанию для файлов ресурсов используется расширение .Res.

begin
 Application.Initialize;

 Application.CreateForm(TForm1, Form1);
 Application.Run;

 end.


Оператор
Application.Initialize инициализирует приложение.
Application.CreateForm создает объекты формы.
Application.Run начинает выполнение приложения.

 

Структуры модуля приложения Delphi

Текст программ хранится в модулях, название которого должно совпадать с именем файла. Модуль состоит из трех разделов: интерфейса, реализации и инициализации. Cтруктура модуля приложения Delphi:

Unit Unitl;

Название модуля (Это название используется в предложении Uses при подключении модуля к программе).

Interface

Раздел интерфейса

Implementation

Раздел реализации (исполняемая часть)

begin

end.

Раздел инициализации

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

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

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

Начинается раздел директивой {$R *.dfm}, указывающей компилятору, что в раздел реализации нужно вставить инструкции установки значений свойств формы, которые находятся в файле с расширением .dfm , имя которого совпадает с именем модуля.

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

Раздел инициализации позволяет выполнить инициализацию переменных модуля. Располагается после раздела реализации между Begin и End.

В этой части помещают операторы, которые должны выполняться один раз при первом обращении к модулю (после ключевого слова Initialization). Или операторы, выполняемые при любом завершении модуля (после ключевого слова Finalization). Эта часть является необязательной. На практике данный подход используется редко, поэтому обычно после Implementation сразу ставится End с точкой (без Begin).

Структура событийной процедуры

Procedure <название процедуры> 

Заголовок процедуры. Название процедуры состоит из двух частей: названия объекта + название события 

Const
    <имя константы> = <значение константы>;
        ……………………………………………
    <имя константы> = <значение константы>;

Раздел описания констант

Type
    <имя типа> = <тип>;
        ……………………………………………
    <имя типа> = <тип>;

Раздел типов

Var
     <имя переменной>:<тип>;
        ……………………………………………
     <имя переменной>:<тип>;

Раздел описания переменных

<Тексты локальных процедур и функций с заголовками>

Раздел процедур и функций

Begin
       <инструкции>
End;

Раздел, в котором пишутся инструкции процедуры обработки событий

Пример структуры модуля приложения

Создадим следующее приложение: ввести два числа, найти их сумму и показать результат.

Форма данного приложения будет содержать следующие компоненты: три текстовых окна Tedit для ввода данных и вывода результата, одну метку Tlabel для изображения на экране знака + и две кнопки Tbutton, одна – для реализации задачи, другая – для ее завершения.

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

 Структура модуля данного приложения:

unit Unit1;

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

interface

uses
 Windows, Messages, SysUtils, Variants,
 Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

Открытый интерфейс модуля

Список подключаемых библиотечных модулей

type

 TForm1 = class(TForm)
   Edit1: TEdit;
   Edit2: TEdit;
   Edit3: TEdit;
   Label1: TLabel;
   Button1: TButton;
   Button2: TButton;


Объявление класса формы, а также типов всех компонентов, включаемых в класс формы

procedure Button1Click(Sender: Tobject);
procedure Button2Click(Sender: Tobject);

Объявление процедур, описывающих действия, которые должны происходить при нажатии кнопок

private
   { Private declarations }

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

public
   { Public declarations }
end;

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

var

 Form1: TForm1;

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

implementation

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

{$R *.dfm}

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

procedure TForm1.Button1Click(Sender: TObject);

var
  a,b,c :integer;
begin
a:=strtoint(edit1.Text);
b:=strtoint(edit2.Text);
c:=a+b;
Edit3.Text:=inttostr(c);
end; 

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

procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;
end.

Реализация событийной процедуры, реализующей обработки события Click на кнопке Button2, в результате выполнения которой заканчивается работа приложения.

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

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

Файл с расширением .Dpr содержит основную информацию о проекте. По умолчанию этот файл называется Project1.dpr. Новичкам редактировать его не рекомендуется.

Файл с расширением .Pas – это файл модуля. В нем хранится текст программы на языке Object Pascal. По умолчанию этот файл называется Unit1.pas. Это единственный файл, который можно редактировать начинающим.

Файл с расширением .Dfm содержит информацию о внешнем виде формы. Информация закодирована.

Файл с расширением .Res – это ресурсовый файл, в котором хранится информация о курсорах, иконках и т.п.

Файл с расширением .Exe – исполняемый файл приложения.

Файлы с расширениями .~Df, .~Pa – файлы со старыми версиями приложения.

У файлов с расширениями Pas, Dfm, ~Df, ~Pa всегда одинаковое имя (по умолчанию Unit1).

У файлов с расширениями Dpr, Exe, Res – также одинаковое имя (по умолчанию Project1).

Примечание.

  1.  При сохранении нового проекта приложения рекомендуется создавать отдельную папку.
  2.  Названия Project1 и Unit1 рекомендуется не изменять.
  3.  Копирование файлов проекта на дискету или в другую папку выполняется только с помощью файлового менеджера Windows (например, проводника). В среде  Delphi это делать запрещается.
  4.  Файлы с расширением Exe, ~Df, ~Pa, Dsm можно не копировать.

После запуска Delphi на экране компьютера появляется основное окно интегрированной среды разработки (ИСР).

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

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

      Правая панель содержит панель библиотеки визуальных компонентов (Visual Component Library - VCL), в дальнейшем просто палитра компонентов.

Палитра компонентов позволяет выбрать с помощью иконок визуальные и другие компоненты, из которых, как из «строительных блоков», собирается разрабатываемое Delphi-приложение.

Палитра содержит ряд страниц, закладки которых видны в ее верхней части. Всего страниц тринадцать. Наиболее употребляемые из них: Standard (стандартные компоненты) и Additional (дополнительные компоненты).

Стандартные компоненты. Это классы, реализующие интерфейсные элементы среды Windows. Среди них: главное меню (MainMenu), всплывающее меню (PopupMenu), этикетка или метка (Label), текстовое поле (Edit) и другие.

Дополнительные компоненты. Эти классы представляют собой различные дополнительные интерфейсные элементы – графические кнопки (BitBtn), редактор с вводом по шаблону (MaskEdit) и другие.

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

Окно формы Form1 представляет собой заготовку (макет) окна разрабатываемого приложения

Окно инспектора объектов Object Inspector позволяет изменять свойства (характеристики) объектов: формы, командных кнопок, полей ввода и т.д.

Инспектор объектов состоит из двух страниц: Properties (свойства) и Events (события).

Каждая страница разделена на две части. На странице свойств в левой части находится название свойства, а в правой - его значение.

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

Нажав на "▼" справа от поля значения, можно получить раскрывающийся список значений.

При нажатии на "..." вызывается специальное диалоговое окно.

Примечание: если значением является число или текст, то после его набора лучше нажать Enter, иначе оно может быть не зафиксировано. При нажатии на "Esc" ввод отменяется.

Страница Events используется для задания реакции на событие. Страница также состоит из двух частей. В первой - название события, а во второй - название процедур, обрабатывающих данное событие. Если в правой части ничего не написано, то программа на данное событие не реагирует. Название процедуры состоит из двух частей: названия объекта + название события.

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

Примечание:

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

2) запрещается исправлять текст программы, написанный самой Delphi, иначе вся программа может быть уничтожена.

Краткая характеристика некоторых компонентов

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

Компонент Form (экранная форма). Форма представляет не только внешний вид окна приложения, но и сама является полноценным компонентом с собственными свойствами и событиями, хотя на палитре компонентов ее нет.

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

Align 

Задает режим выравнивания объектов внутри формы.

BorderStyle 

Задает стиль обрамления формы, а также поведение формы (возможность менять размеры окна).

Caption 

Задает заголовок окна формы.

Color 

Задает цвет формы.

Font 

Задает атрибуты шрифта формы.

Значения свойств можно задать либо в окне свойств объекта, либо в программе.

Пример использования в программе

Form1.color:=clRed;

Основное событие компоненты Form 

Load 

Происходит при загрузке формы.

Компонент Label (надпись или метка) . Назначение – нести на себе надпись. Можно использовать для вывода ответа или пояснения вводимых данных. Относится к группе Standard.

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

Caption 

Задает заголовок надписи, выводимой на экран

Alignment

Задает режим выравнивания текста метки.

AutoSize 

Позволяет автоматически менять размеры метки, чтобы соответствовать размерам надписи (значение True).

Font

Задает шрифт, используемый для отображения текста

Visible

Задает видимость надписи на экране. Имеет два значения. Если значение True, то надпись видна, False – нет.

WordWrap 

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

 

Пример использования в программе

Label1.Caption:=’Сумма’+IntToStr(s);

Компонент Edit (поле редактирования). Используется для ввода/вывода чисел и текста в программу. Относится к группе Standard.

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

AutoSize 

Задает необходимость изменения размера компонента при изменении размера шрифта (если True).

BorderStyle 

Задает стиль обрамления поля.

Text 

Задает содержимое строки редактирования.

MaxLength 

Ограничивает число вводимых в поле символов.

ReadOnly 

Запрещает редактировать отображаемый текст (если True).

 

Пример использования в программе

Edit3.Text:=FlotToStr(s);

 Основное событие компоненты Label 

Changе

Происходит, когда пользователь изменяет текст

Компонент Button (командная кнопка) . Используется для задания реакции на событие. Относится к группе Standard.

Основные свойства Button

Caption

Задает название кнопки.

Height

Задает высоту кнопки.

Width

Задает ширину кнопки.

Left 

Задает расстояние от левой границы кнопки до левой границы формы

Top 

Задает расстояние от верхней границы кнопки до верхней границы формы

 

Основное событие компонента Button

OnClick

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

 

Пример создания, сохранения, компиляции и отладки простого приложения

Задание 1. Создать приложение, которое обеспечивает ввод двух целых чисел, вычисляет их сумму и выводит значение результата.

Следуйте рекомендациям, описанным ниже.

1.   Запустите ИСР Delphi с помощью команды Главного меню Windows Пуск  Программы  Borland Delphi 6  Delphi 6.

2.    Создайте новый проект при помощи команды File  New  Application. В раскрытом окне формы можно размещать визуальные компоненты для реализации проекта приложения.

3.    Сохраните новый проект командой меню File  Save Project As. В появившемся окне Save Unit1 As с помощью кнопки   создайте новую папку для файлов создаваемого проекта с названием «Сумма чисел» на Рабочем столе. Откройте созданную папку и нажмите кнопку Сохранить. После сохранения файла модуля Unit1.pas откроется окно Save Project As. Задайте имя файла проекта «Summa»и нажмите кнопку Сохранить.

 

4.   Измените заголовок формы Form1.

Для этого в окне Инспектора объектов откройте страницу Свойства (Properties), выберите свойство Caption (Заголовок) и задайте его новое значение «Сумма двух целых чисел».

  5.   Разместите на форме компоненты Edit1, Edit2, Edit3, Label1, Button1, используя соответствующие пиктограммы
группы
Standard.

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

 

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

6.   Измените свойства компонента Label1: Задайте свойство Caption (заголовок) как «+», в списке свойств Font (Шрифт) свойству Size (Размер) присвойте значение 20.

7.   Измените свойства компонента Button1: Задайте свойство Caption (заголовок) как «=», в списке свойств Font (Шрифт) свойству Size (Размер) присвойте значение 20.

8.   Выровняйте компоненты на форме. Для этого выделите их все при нажатой клавише Shift, затем в контекстном меню выберите команду Position  Align.

9.   Измените свойства компонентов Edit1, Edit2, Edit3: Удалите текст из свойства Text.

10. Добавьте на форму еще три объекта Label, расположите их над объектами Edit1 - Edit3 и задайте их свойствам Caption значения «Слагаемое», «Слагаемое», и «Сумма».

11. Активизируйте окно Редактора кода, нажав F12. Просмотрите сгенерированный Delphi модуль описания формы и размещенных на ней компонентов.

12. Сохраните изменения, внесенные в проект, командой меню File  Save All.

13. Откомпилируйте созданный проект командой меню Project  Compile summa (summa – это имя проекта).

14. С помощью файлового менеджера просмотрите папку проекта.

summa.cfg – файл конфигурации проекта

summa.dof – файл параметров проекта.

summa.dpr – файл проекта Delphi. Главная программа приложения.

summa.exe – откомпилированный проект. Исполняемая Windows-программа.

summa.res – файл ресурсов Windows.

Unit1.~dfm, unit1.~pas – файлы резервных копий.

Unit1.dcu – откомпилированный модуль.

Unit1.dfm – файл формы (двоичный файл) содержит начальные данные для компонент.

Unit1.pas – исходный код модуля формы.

15. Закройте окно файлового менеджера, активизируйте окно Delphi и запустите проект на выполнение командой меню Run  Run.

16. Рассмотрите окно созданной формы. Обратите внимание, что оно имеет стандартные атрибуты окна Windows.

17. Завершите работу приложения любым из стандартных методов.

18. Создайте код обработчика событий: при нажатии на кнопку «=» два введенных должны складываться.

Для этого: выделите кнопку Button1, в окне Инспектора объектов перейдите на вкладку Events (События), выберите событие OnClick и дважды щелкните левой кнопкой мыши на пустом поле списка. В открывшемся окне Редактора кода между операторами begin и end разместите необходимые операторы.

Окончательно процедура обработки события щелчка на кнопке Button1 должна выглядеть следующим образом:

procedure TForm1.Button1Click(Sender: TObject);

var

 a,b,c:integer;// Слагаемые и сумма целые числа

begin

 a:=StrToInt(Form1.Edit1.Text);//преобразование строкив целое число

 b:=StrToInt(Form1.Edit2.Text);

 c:=a+b;

 Form1.Edit3.Text:= IntToStr (c);//преобразование целого числа в текст

end;

19. Сохраните изменения в проекте.

20. Запустите приложение на выполнение.

21. После проверки работы приложения, закройте его.

22. Запустите приложение из Windows, используя исполняемый файл. 

Задание 2. В созданном проекте измените свойства компонентов Label2, Label3, Label4, задав стиль шрифта – курсив, цвет шрифта – синий, размер символов – 10 пунктов.

  Задание 3. В созданный проект добавьте кнопку на закрытие приложения. В редакторе кода используйте оператор Close.

 

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

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

 

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

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

Наиболее типичные ошибки компиляции

Сообщения компилятора

Вероятная причина

Undeclared identifier
(Необъявленный идентификатор)

Используется переменная, не объявленная в разделе var программы;

Ошибка при написании имени переменной;

Ошибка при написании имени инструкции (оператора).

Unterminated string
(Незавершенная строка)

При записи строковой константы не поставлена завершающая кавычка.

Incompaible types … and …
(
Несовместимые типы)

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

Missing operator or semicolon
(Отсутствует оператор или точка с запятой)

Не поставлена точка с запятой после инструкции программы.

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

Ошибки времени выполнения

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

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

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

А если программа запускается из среды Delphi с помощью встроенного отладчика, то при возникновении ошибки также появляется окно с сообщением об ошибке, и выполнение программы приостанавливается, но в этом окне помимо сообщения об ошибке указывается тип ошибки. Например, в этом окне сообщается о невозможности преобразования строки «g» в число:

Чтобы продолжить работу, нажмите «ОК», затем снова Run.  Окно исполняемого проекта будет свернуто, поэтому выберите его внизу экрана, в диалоговом окне ошибки снова нажмите кнопку «ОК». В данном случае будет возможность задать правильные значения переменным.

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


 

А также другие работы, которые могут Вас заинтересовать

18904. Привлечение инвестиций, спонсоринг, фандрайзинг 28.5 KB
  Привлечение инвестиций спонсоринг фандрайзинг Тема привлечения инвестиций является всеобъемлющей. Основными инструментами привлечения инвестиций являются нормативные финансовые и политические рычаги. Но без грамотной информационной поддержки все эти меры не пр...
18905. PR-ТЕХНОЛОГИИ В ПРИВЛЕЧЕНИИ ИНВЕСТИЦИЙ. СПОНСОРИНГ И ФАНДРАЙЗИНГ 138 KB
  PRТЕХНОЛОГИИ В ПРИВЛЕЧЕНИИ ИНВЕСТИЦИЙ. СПОНСОРИНГ И ФАНДРАЙЗИНГ Вопрос привлечения инвестиций является всеобъемлющим: финансовые средства нужны всем: одним чтобы совершить благое дело другим чтобы прирастить объем уже существующей денежной массы третьим чтобы да
18907. СПОНСОРИНГ И ФАНДРАЙЗИНГ 35 KB
  СПОНСОРИНГ И ФАНДРАЙЗИНГ Вопрос привлечения инвестиций является всеобъемлющим: финансовые средства нужны всем: одним чтобы совершить благое дело другим чтобы прирастить объем уже существующей денежной массы третьим чтобы дать толчок к развитию организации в са
18908. Привлечение инвестиций, спонсоринг, фандрайзинг. РАБОТА СО СПОНСОРАМИ 118.5 KB
  Привлечение инвестиций спонсоринг фандрайзинг Вопрос привлечения инвестиций является всеобъемлющим: финансовые средства нужны всем: одним чтобы совершить благое дело другим чтобы прирастить объем уже существующей денежной массы третьим чтобы дать толчок к ра
18909. Специальные мероприятия PUBLIC RELATIONS: классификация и основные характеристики 43.5 KB
  Специальные мероприятия PUBLIC RELATIONS: классификация и основные характеристики Специальные события – это мероприятия проводимые компанией в целях привлечения внимания общественности к самой компании ее деятельности и продуктам. Они призваны нарушить рутинный и привы
18910. СПЕЦИАЛЬНЫЕ МЕРОПРИЯТИЯ PUBLIC RELATIONS: КЛАССИФИКАЦИЯ И ОСНОВНЫЕ ХАРАКТЕРИСТИКИ 45.5 KB
  СПЕЦИАЛЬНЫЕ МЕРОПРИЯТИЯ PUBLIC RELATIONS: КЛАССИФИКАЦИЯ И ОСНОВНЫЕ ХАРАКТЕРИСТИКИ Специальные события – это мероприятия проводимые компанией в целях привлечения внимания общественности к самой компании ее деятельности и продуктам. Цели СМ: формирование корпоративного...
18911. Двовимірні масиви. Лабораторна робота 48 KB
  Введення масивів, виведення масивів, обчислення величин здійснювати за допомогою окремих процедур та функцій. Не забувайте включати до Ваших програм перевірки на неможливість значень даних («захист від дурня»).
18912. Типология кризисов и методы их предотвращения средствами PR 40.5 KB
  Типология кризисов и методы их предотвращения средствами PR Кризис может иметь различные формы но PRспециалисты обычно имеет дело с кризисом общественного мнения который можно описать разбить на категории и как правило хотя бы в общей форме предсказать. Всегда име