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

Основы информатики

.pdf
Скачиваний:
26
Добавлен:
26.03.2015
Размер:
2.94 Mб
Скачать

Кирьянов Б.Ф. Основы информатики. 131

В среде Delphi 2007 центральную часть общего окна занимает окно дизайнера формы – подложки, на которую при проектировании устанавливаются все элементы. В нижней части общего окна находятся кнопки выбора режима центрального окна: Code (коды, программа), Design (дизайн), в котором видны форма и окно Tool Palette – палитра инструмента, то есть перечня вкладок с устанавливаемыми на форму элементами) и History (история создания проекта).

Для установки на форму необходимого элемента нужно найти его на вкладках, щѐлкнуть по нему левой клавишей мыши, а затем этой же клавишей щѐлкнуть в нужное место формы. При этот на форму будет установлен выбранный элемент, а на вкладке Properties (свойства) окна инспектора объектов (Object Inspector) откроются параметры свойства) установленного объекта, которые можно откорректировать. После изменения значений параметров щелчком левой клавиши мыши по объекту на форме можно установить новые значения параметров на объекте. На вкладке Events этого окна указаны события, на которые может реагировать объект, указанный в шапке окна Object Inspector.

Кирьянов Б.Ф. Основы информатики. 132

В окне Projects Manager отображается структура проекта (приложения, над которым в данный момент идѐт работа).

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

Если какое-либо из перечисленных окон не отображается, то в меню View (просмотр) главного окна системы Delphi надо выбрать соответствующую команду для открытия этого окна.

7.3. Подготовка проекта

Для создания нового проекта c приложением VCL (Visual Component Library – библиотека визуальных компонентов) необходимо открыть папку RAD Studio, запустить программу Delphi 2007 с помощью еѐ ярлыка и в от-

крывшемся окне CodeGear RAD Studio по пути File / New / VCL Forms Application – Delphi for Win32 или по пути New Project / VCL Forms Application – Delphi for Win32 установить начальный модуль проекта Project1. Этот модуль начинается с вызова стандартного перечня утилитов (ресурсов) и объекта типа Forma, который приписывается к классу форм.

Дело в том, что объектное построение языка Паскаль предусматривает понятия объекта и класса. Класс – это тип данных, тип объектов, а объект – это конкретный экземпляр класса. Например, переменная S, принадлежащая классу вещественных чисел (real). Еѐ запись (пояснение) должно быть вначале программы (для глобальных переменных) или вначале подпрограммы (локальные переменные): R: real; S: string; J: integer; K: array[1..10] of integer; a: array[1..6,1..4] of real;

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

Type T1 = classTMyClass;

T2 = class(T1); − T2 принадлежит классу T1 (или: переменная с именем Т2 является объектом класса Т1).

Пример уточнения в программе класса формы 1: TForm1 = class(TForm) - объект форма 1-я принадлежит классу форм (типа форм). Буква Т – это первая буква слова Type { йп}.

Для объектно-ориентированного программирования характерна иерархия классов, то есть использование различных классов.

 

Кирьянов Б.Ф. Основы информатики.

133

 

 

При создании новой программы ЭВМ формирует еѐ основу (Project1):

unit Unit1;

// Приложение, блок 1-й

interface

// Начало интерфейса

uses

// Вызов программных модулей

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs;

 

 

 

Type

//

Блок объявлений используемых

типов.

 

 

 

TForm1 = class(TForm)

//

Форма 1-я принадлежит классу

TForm.

 

 

 

. . . . . . . . . . . . . . . . unit Un_Artikles; Interface . . .

В число вызываемых утилит можно включать и свои приложения (Unit). Пример такой программы:

uses Windows, SysUtils, Classes, Graphics, Controls, Forms, UnitMedStat, UnitLetters, ClipBrd, ExtCtrls;

type

TForm1 = class(TForm)

Image1: TImage;

procedure FormActivate(Sender: TObject); private

{Private declarations } public

{Public declarations }

end;

// Завершение этапа указания type

var

Form1: TForm1;

I, J, GrNum: integer; // Глобальные переменные

IP: real;

Кирьянов Б.Ф. Основы информатики. 134

procedure Med2006_2(FONum: integer; c: TCanvas);

procedure Itog2006_Tabl1_3(c: TCanvas);

// Вводимые программистом процедуры

private

//

Частные объявления (пояснения, вводимые

{ Private declarations }

//

программистом. Например: aPath: string;

 

//

(выбранный каталог)

public

//

Общие пояснения, выводимые машиной.

{ Public declarations }

// В системе Delphi 2010 они могут выводиться

end;

//

в любой точке программы.

var Form1: TForm1;

//

Глобальные переменные и метки.

 

//

Список подпрограмм, введённых

 

//

программистом.

implementation

// Выполнение программы

{$R *.dfm}

// Указание-подсказка компилятору о том, что описание

//формы, сформированной Delphi в процессе её создания,

//находится в приложении Unit1.dfm (dfm – delphi-forma).

//Процедуры, введённые ЭВМ.

end.

Пример начала программы приложения “Статьи”:

unit Un_Artikles; interface

uses

Windows, SysUtils, Classes, Graphics, Controls, Forms, UnitMedStat, UnitLetters,

ClipBrd, ExtCtrls;

Type

// Названия процедур в раздел type вводятся только ЭВМ!

TForm1 = class(TForm)

Image1: TImage;

procedure FormActivate(Sender: TObject);

Кирьянов Б.Ф. Основы информатики. 135

private

 

{ Private declarations }

 

public

 

{ Public declarations }

 

end;

 

var

 

Form1: TForm1;

 

I, J, GrNum: integer;

// Глобальные переменные

IP: real;

 

procedure Med2006_2(FONum: integer; c: TCanvas);

// Записываются названия

procedure Itog2006_Tabl1_3(c: TCanvas); // процедур, создаваемых программистом.

Создавая программу, прежде всего, нужно выбрать соответствующие свойства формы: Name (имя, идентификатор формы), Caption (надписьзаголовок на форме), Height (высота формы), Width – ширина, Top (расстояние от верхней границы формы до верхней границы экрана), Left (расстояние от левого края экрана до левой границы формы) и др. Все размеры указываются в пикселях.

Перечисленные свойства используются и для ряда компонентов, то есть они имеют тот же смысл. Но если эти компоненты ставятся на другие компоненты, например, на окно (Image), то указанные расстояния измеряются до сторон нижнего компонента. К таким компонентам относятся, например, Edit, MaskEdit, Memo, Button, Radiobutton, Panel и др.

7.4. Структура проекта

Открыть проект, разработка которого уже начата, можно как из ок-

на CodeGear RAD Studio, открывающегося при запуске программы Delphi 2007, так и из папки с этим проектом, расположенной в папке RAD Studio. Ниже приводится содержание папки Pr_Articles, содержащей 14 файлов, в том числе двух с личными базами данных. Для открытия проекта удобнее всего щѐлкнуть по значку среднего файла в верхнем ряду, что не только открывает файл Un_Articles, но и позволяет запустить проект.

На рис 7.2 приводится содержание папки Pr_Articles, содержащей 14 файлов, в том числе 2 с личными базами данных.

Кирьянов Б.Ф. Основы информатики. 136

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

Рис. 7.2. Пример комплекта файлов проекта

Собственно проект не является объединением файлов в соответствии со стрелками. Он вызывает эти файлы и при запуске отправляет их на сборку и компиляцию. Отображение кода файла проекта в окне Редактора кода задаѐтся командой Project / View Source (Проект / Просмотр источника).

Приведѐнные на рис. 7.2 модули имеют следующие расширения:

проект – dpr (delphi-project);

описания форм – dfm (delphi-form);

модули форм и модули – pas (pascal);

откомпилированные модули и их параметры – dcu (delphi-compil-unit);

параметры проекта – dof (delphi-object-file);

параметры среды – cfg (configuration);

описание ресурсов – res (resources);

приложение – exe (файл в машинных кодах, расширение не указывается).

Кирьянов Б.Ф. Основы информатики. 137

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

Рис. 7.3. Пример структуры проекта с двумя формами

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

тельное приложение, имеющее расширение exe. Оно получается путем быстрой компиляции (объединения) откомпилированных модулей с расширениями dcu. Среди них могут быть, например, локальные базы данных на основе приложений Unit. Кроме модулей, указанных в приведенном выше перечне, могут формироваться ещѐ копии отдельных модулей. В случае зависания и порчи программы проекта по этим копиям можно восстановить проект на момент последней его записи.

Таким образом, проект представляет собой совокупность файлов, которые используются компилятором. Основу проекта образуют файл главного модуля, который обычно обозначается Project.dpr (description – описание) и один или несколько других модулей (по числу используемых форм, pas). Помимо этого в процессе компиляции используется файл ресурсов (res), файлы описания форм (отдельный файл для каждой формы с расширением dfm), а также файл конфигурации проекта (cfg).

Кирьянов Б.Ф. Основы информатики. 138

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

При открытии проекта появляются окно редактора формы (форма), наложенное на окно редактора кода (окно приложения Unit), а также вкладки управления (сверху), палитры инструментов (справа) и Object Inspector (инспектор объектов, слева), над которым есть ещѐ (маленькое) окно структуры приложения. При этом в некоторых версиях Delphi файл главного модуля для открытия не предлагается. Чтобы его увидеть надо в меню Project выбрать команду View

Source.

Пример главного модуля программы лабораторной работы М3: (запуска-

ется с помощью кнопки run − зелѐный треугольник):

Program LaborM3;

// Название запускаемого проекта

Uses Forms

UnitM3 in UnitM3.pas {Form1}; // Указание запускаемого приложения

{SR *.RES}

//

Директива компилятору подключить файл ресурсов

begin

 

 

Application.Initialize;

//

Запуск приложения.

Приложение (Unit) открывается в главном окне редактора. Под этим окном имеются 3 указателя: Code (программа), Design (план, планирование) и History (история). Ими можно переключать файл истории создания данного приложения, план расположения объектов на форме и собственно модуль программы с расширением pas.

7.5. Понятие холста (класса TCanvas)

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

Кирьянов Б.Ф. Основы информатики. 139

c.TextOut(120,74,‘Обозначения‘); вывод слова с указанием местоположения в задаваемой области холста (левой верхней точки этой области).

Всписке подпрограмм и в заголовках подпрограмм обычно указывается:

c:TCanvas. Например: procedure Fig 3_2(k: integer; c: TCanvas);

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

Всвязи с тем, что в среде Delphi буква ―с‖ используется для сокращѐнного обозначения слова ―Canvas‖, в качестве математической переменной она не применяется. Ввод буквы ―c‖ в качестве идентификатора будет ошибкой.

Отметим, что в среде Delphi некоторые классы рассматриваются как подклассы или как свойства некоторых классов. Например, класс Font (Шрифт) может служить свойством более общих классов, например, классов Graphics, Form, Edit, Label и др. В некоторых литературных источниках Canvas рассматривается как свойство, а не как класс.

Для задания операторов и функций в среде Delphi используется объектноориентированный язык Паскаль.

По умолчанию область холста совпадает с областью формы или элемента, на который производится вывод. Класс TCanvas имеет набор стандартных свойств и методов, позволяющих выполнять различные графические операции. Выведенная на холст графическая информация отображается до тех пор, пока данная область холста не будет закрыта другим холстом или свѐрнута. Компоненты для холста: Image и PaintBox (набор цветов). Эти компоненты для установки на холст берутся из вкладок окна Tool Palette.

Совместно с классом Canvas используется несколько других классов, или точнее подклассов класса Canvas. Например: c.Font.Size:=12 (задание размера шрифта в подклассе Шрифт класса Canvas), c.Pen.Color:= (задание цвета линий в подклассе Карандаш – Pencil класса Canvas).

7.6. Операторы и функции класса Canvas

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

Кирьянов Б.Ф. Основы информатики. 140

ОсновныеОсновныевойства исвойстваметоды (иоператорыиметоды()(операторыкласса Canvas))класса Canvas

 

Свойство

Подкласс TFont (Шрифт)

 

 

 

 

 

 

Назван. шрифта

Пример: c.Font.Name:='Times New Roman'; (по умолчанию)

 

 

 

 

Color

Цвета, имеющие названия в ЭВМ: Black, Silver, Maroon (кашта-

 

(здесь и в дру-

новый),

Green, Red, Lime (салатный), Blue, Olive, Nary (тѐмно-

 

синий), Fuchsia (ярко-розовый), Purple (розовый), Aqua (бирюзо-

 

гих классах)

 

вый), Teal (зелѐно-голубой), White, Gray.

Примеры задания:

 

 

 

 

c.Font.Color:=clBlue; (cl буквы слова color);00000000000000000

 

 

c.Brush.Color:=clRed; c.Pen.Color:=clGreen;

 

 

 

 

Цвета,

формируемые

пользователем. Общий вид

записи:

 

 

$00D5E3F5 (в 16-ричной системе задаѐтся смесь трѐх основных

 

 

цветов – D5 (синий), E3 (зелѐный) и F5 (красный) – вместо этих

 

 

чисел нужно подобрать свои числа по получаемому цвету). Пер-

 

 

вая цифра < 8, вторая = 0 (иначе будет чѐрный цвет). Пример за-

 

 

дания цвета: c.Font.Color:=$00F8E7D8;

 

 

 

 

 

 

 

 

Size

Размер.0Пример0задания:0c.Font.Size:=14;

 

 

 

 

 

 

Style

Для шрифта: [ ] – прямой, fsItalic – наклонный (курсив), fsBold –

 

 

полужирный, fsUnderline подчѐркнутый. Пример задания двух-

 

 

стильного шрифта c.Font.Style:=[fsItalic] + [fsBold]; (fs означает

 

 

Font.Style).

 

 

 

 

 

Для линий: psSolid – сплошная, psDash – пунктирная, psDot – то-

 

 

чечная, psDashDot – пунктирно-точечная, psDashDotDot − линия

 

 

с чередованием одного штриха и двух точек; (ps означает

 

 

PenStyle, pencil − карандаш). Пример задания цвета красителя:

 

 

c.Pen.Style:=psDash;

пример задания

цвета

линии:

 

 

c.Pen.Color:=clRed;

 

 

 

 

 

 

 

 

Свойство

Подкласс TBrush (Кисть) – для заливки фигур

 

 

 

 

 

Brush.Style

bsSolid – сплошная заливка, bsHorisontal – горизонтальная штри-

 

Brush.Color

ховка,

bsVertical – вертикальная штриховка, bsFDiagonal – диа-

 

 

гональная штриховка с наклоном линий вперѐд, bsBDiagonal –

 

 

диагональная штриховка с наклоном линий назад, bsCross – го-

 

 

ризонтально-вертикальная штриховка в клетку, bsDiagCross –

 

 

диагональная заливка в клетку, (bs означает стиль заливки).

 

 

Примеры заданий стиля и цвета заливки:

 

 

 

 

c.Brush.Style:=bsHorisontal; c.Brush.Color:=clAqua;