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

GOSY / 1 блок-все-шпора(печать)

.pdf
Скачиваний:
37
Добавлен:
09.05.2015
Размер:
1.57 Mб
Скачать

поле; метод;

метод; end;

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

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

Структура класса гораздо сложнее записи, поэтому внутри класса выделены специальные области:

Type

Имя класса = class (имя предка)

Published {Специальная область элементов, доступных для инспектора объектов}

…..

Private {Область закрытых элементов, доступных только внутри методов данного}

….. {класса и подпрограмм данного модуля, недоступны потомках}

Protected {Область закрытых элементов, доступных методам класса и его потомков}

…..

Public {Область элементов, доступных в любом модуле проекта} …..

Automated {Секция автоматизации - элементы, необходимые для технологии OLE }

…..

end;

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

61

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

Public(скрытый). Члены объекта доступны в любом месте программы. Конструкторы и деструкторы всегда должны быть объявлены как public. Published (экспортируемый). Для членов этого объекта в процессе компиляции будет создана информация о типах времени выполнения. Это позволит другим элементам приложения получать информацию об элементах объекта, объявленных как published.

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

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

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

Замечание. Так же как и для полей записи обращение к полям возможно либо с помощью указания имени объекта, точки и имени поля (составное имя), либо с помощью структурного оператора with.

Методы представляют собой процедуры и функции, принадлежащие классу. Объявляются внутри описания объекта. Они определяют поведение класса. procedure <Заголовок> (<Параметр1>, <Параметр2>: integer);

Объявление метода внутри объявления объектного типа содержит только заголовок. Тело метода определяется вне объявления объекта. Его заголовок дожжен содержать имя объекта, которому принадлежит метод.

procedure <ТипОбъекта.Метод> (<Параметр1>, <Параметр2>: integer); begin

62

end;

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

При описании класса методы описываются в 2 этапа:

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

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

В классе всегда должны присутствовать 2 важнейших метода: конструктор и деструктор.

Конструктор – метод, который создает конкретный объект - экземпляр класса. Деструктор – метод, который удаляет конкретный объект из памяти. Конструктор – спец. метод, инициализирующий объект, содержащий виртуальные методы, он объявляется специально зарезервированным словом constructor. Он инициализирует объект путем установления связи между объектом и специальной таблицей виртуальных методов, содержащей адреса кодов, реализующих Вирт. методы. Может использоваться для инициализации полей данных объекта.

Деструктор – спец. метод, освобождающий память «кучи» (Вся динамическая память рассматривается как подобная стеку структура, называемая кучей) от динамических объектов. Использует слово destructor.

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

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

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

О. Свойства – поле процедурного типа. Свойства должны регулировать доступ к полям. Для этого у каждого свойства есть поле и 2 метода – чтения (read) и записи (write). Обычно свойство связано с полем и указывает те

63

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

Property имя свойства: тип Read метод чтения из поля Write метод записи в поле Default значение по умолчанию;

При работе программы свойство используется как обычное поле, но фактически ввод и чтение данных возможно только через указанные процедуры-методы. Если нет необходимости в специальных методах, то можно указывать вместо процедуры (метода) имя поля. Если поле доступно только для чтения то не указывается метод записи и наоборот. Значение по умолчанию присваивается полю свойства, если оно не было определено (что удобно для инициализации объекта). Принято имя метода чтения начинать с Get, а метода записи с Set. Для того чтобы свойство было доступно инспектору объектов его необходимо поместить в область Pablished.

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

64

9.Состав и назначение среды визуального программирования Delphi. Инспектор объектов, палитра компонентов, форма. Настройка свойств формы, создание и запуск приложений.

Организация событийно-управляемой программы в Delphi Организация диалога (ввода-вывода данных).

Объекты в визуальном программировании имеют вполне определѐнный вид (видимы). С помощью специального интерфейса можно их совмещать между собой и настраивать свойства каждого объекта. Объекты м. б. стандартные и объекты пользовательские (создаваемые пользователем) при работе в визуальной среде программист имеет дело со стандартными объектами. Одновременно работая в визуальной среде автоматически генерируется программа. Для наличия визуального программирования необходимо размещать объекты только в модулях, чтоб был организован интерфейс визуального показа объектов, необходима автоматическая генерация. Форма: является основным строительным блоком в Delphi, программа имеет как минимум одну связанную с ней форму, которая называется главной – эта форма появляется на экране в момент старта программы. Программа может иметь сколько угодно форм, каждая из которых решает какую-то локальную задачу и появляется на экране по мере необходимости. Стиль fsNormal – определяет обычную форму, используемую для решения самых различных задач, в том числе для общего управления всей программой. fsMDIchild и fsMDIForm используются при создании т.н. многодокументных приложений в стиле MDI – создании главного окна, внутри которого по мере необходимости появляются дочерние окна. fsStayOnTop предназначен для окон, которые всегда должны располагаться над всеми другими окнами программы. Препятствовать перекрытию окна другими окнами, даже если оно станов не активным и теряет фокус ввода. Меню: (иерархическое меню) содержит пункты для работы с файлами, редактирования, поиска, настройки среды, компиляции и запуска программ, получения справки. File – работа с файлами, Edit – редактирование, search – поиск, View, Tools, Options – настройка среды, Compile – компиляция, Run – запуск, Help – помощь. Инспектор объектов: в данном окне 2 страницы: страница свойств и страница событий. Properties – служит для установки нужных свойств компонента, Events – позволяет определять реакцию компонентов на то или иное событие. Совокупность свойств отображает видимую сторону компонента: положение относительно верхнего левого угла рабочей области формы, его размеры и цвет, шрифт и текст надписи на нем и т.д. Совокупность событий – его поведенческую сторону: б. ли компонент реагировать на щелчок мыши или на нажатие клавиши, как он б. вести себя в момент появления на экране или в момент изменения размеров окна и т.д. Каждая страница окна ИО представ собой 2- хколончатую таблицу, левая содержит – название свойства или события, а правая – конкретные значения свойства. Строки таблицы выбираются щелчком

65

мыши и м. отображать простые или сложные свойства (простые определяются одним словом, сложные – совокупностью значений). Щелчок мышью на прав колонке строки таблицы активизирует указание в ней значения свойства. В верхней части окна ИО располагается раскрывающийся список всех помещенных на форму компонентов. В локальном меню окна, которое появляется после щелчка по нему правой кнопкой имеет ряд опций, которые позволяют настроить окно ИО. Палитра компонтов: занимает правую часть главного окна и имеет закладки, обеспечивающие быстрый поиск нужного компонента. Под компонентом понимается некоторый функциональный элемент, содержащий определѐнные свойства и размещаемый программистом в окне формы. ПК редактор, окно которого появляется на экране после щелчка правой кнопкой мыши на пиктограмме в ПК и выбора опций Properties. не менее 10 различных страниц ПК с объектами. Наиболее известны:

Standard содержат стандартные элементы управления

Additional DataAccess

DataControl управление и работа с БД

Dialogs – для систем средств взаимодействия с пользователем Win.32 – особые элементы управления для современных систем Win.31– старые общие управления

Internet – взаимодействие с Internet

Sistem – средства внедрения Windows, OLE, DDE Midas – работа с многопользовательскими БД

Кроме стандартных объектов Делфи хранит и готовые формы, которые являются шаблонами. Репозиторий – это библиотека форм или шаблонов Делфи.

Свойства форм:

Форма им собствен имя, заголовок, атрибуты, стиль. Имя задается в Name, заголовок – caption. Стиль определяется тем, какой интерфейс у нее : FormStyle (fsMDIChild, fsMDIform, fsSDIchild, fsForm). Стили бывают также у самого изображения. Для этого используется свойство: BorderStyle PSNone – вид прямоугольный

PSSingle – на меняет размер PSSizeable – меняет размер PSDialog – стиль окна диалога

BSToolwindow

BSSizeToolWin панели инструментов

К атрибутам формы относят еѐ конкретные размеры, цветные элементы. У формы, как и у окна, ширина, высота. Расположение окна:

1) в процессе создан форму перемещают, изменяют еѐ размер, получают данные автоматически, вносят в свойства. 2) в процессе создан формы программным способом определяется еѐ местоположение и размеры. Форма в

66

1-м варианте зависит от свойства: PoPisigned – местоположение по умолчанию, определяется местоположение в момент создания. PoScreenCenter – по центру экрана, размер определяем сами. Используются установки цветов и шрифтов: абсолютная установка размера шрифта, например свойство PixelsParInch – колво пикселей на дюйме.

Также к атрибутам относят вид границы BorderIcons - граница картинки. Определяется стиль и вид границы формы. На границе форм м. располагать меню, пиктограммы открытия, закрытия окна, изменения размеров окна. Кроме атрибутов еще вспомогательные свойства, которые позволяют организовать взаимодействие с др. элементами. На форме д. б. определѐнная клиентская область. ClientHeight - высота

ClientWidth - ширина, ClientRect - прямоугольник.

Кроме того, в форме м. б. встроены дополнительные меню, для их установкислед свойства: Menu - обычное меню, PopupMenu – всплывающее меню. В данных свойствах указываются конкретные компоненты меню, которые служат в качестве 1) главного меню формы, 2) всплывающего меню формы.

Проект – файл с расширением .dpr. Файл проекта представляет собой программу, написанную на языке О.Р., и предназначен для обработки компилятором. Эта программа автоматически создается Делфи и содержит несколько строк. Чтоб их увидеть запустите Делфи и щелкните по опции Project/ViewSourse главное меню. Форма – основной строительный блок в Делфи. программа им как минимум 1 связную с ней форму, которая называется главной – она появляется на экране в момент старта программы. Программа м. им. сколько угодно форм, каждая из которых решает какую-то локальную задачу, появляется на экране по мере надобности. Модули – программные единицы, предназначены для размещения фрагментов программ, с помощью содержащегося в них программного кода реализуется вся поведенческая сторона программы. Структура модуля:

Компиляция – преобразование подготовленного в окне кода текста программы на языке ОР в последовательность машинных инструкций.

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

Сохранение – в меню File выбрать Save Project As, нужно указать имя файла и папку его размещения, которая д. б. заранее создана.

Компиляция – преобразование подготовленного в окне кода текста программы на языке ОР в последовательность машинных инструкций.

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

Сохранение – в меню File выбрать Save Project As, нужно указать имя файла и папку его размещения, которая д. б. заранее создана.

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

67

генерация кода программы. В процессе работы программы генерируется исполняемый файл проекта *.exe, конфигурационный файл проекта *.ctg, файлы ресурсов *.res (информация для подключения стандартных модулей), файл самого проекта *.dpr (сама программа ), файл модуля *.pas. Таким образом Delphi генерирует набор файлов, часть из которых имеет назначение, установленные пользователем, а часть автоматически.

Возможность программирования в Delphi определяется двумя вариантами:

-стандартным (предполагает написание кода программы в редакторе)

-визуальным (осуществляется специальным интерфейсом и автогенерацией кода)

Их приходится совмещать, т.к. автогенерация даѐт существенный выигрыш по скорости создания программы.

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

Объекты на форму помещаются в интерактивном режиме с помощью мышки. Три варианта помещения объекта на форму: 1.Объект копируется – объект помещается в файл проекта как экземпляр данного класса. 2. Перемещение объекта, т.е. объект перемещается из библиотеки объектов в проект, при этом мы можем изменять сам класс объектов. 3. Перемещение иерархии объектов

вэтом случае в форму перемещается вся иерархия данного класса (т.е. все родительские типы).

Общее свойства формы, такие как назначенное действие Action; выбор механизма внедрения других объектов DDE, OLE и т.д., имеют COM тип; свойства связанные с поддержкой передачи данных в базы данных. Закрытие окна формы означает прекращение работы с проектом. Закрытие работы проекта – выход в среду Delphi.

Форма может иметь свой собственный значок Icon, а также могут устанавливаться свойства для работы с драйверами экрана с другими окнами.Visible – определяет видимость или невидимость формы. Active Control

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

События в Delphi

Объекты из библиотеки визуальных компонент (VCL) Delphi имеют свой набор свойств и свое поведение - набор откликов на события, происходящие с

68

ними. Список событий для данного объекта, на которые он реагирует, можно посмотреть, например, в Инспекторе Объектов на странице событий.

Среди набора событий для различных объектов из VCL есть как события,

портируемые из Windows (MouseMove, KeyDown), так и события,

порождаемые непосредственно в программе (DataChange для TDataSource). Поведение объекта определяется тем, какие обработчики и для каких событий

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

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

Библиотеки содержат стандартные компоненты или классы Delphi в двух формах:

1.В виде кода – листинга программы на Object Pascal.

2.Откомпилированная в отдельном файле библиотека.

Такие откомпилированные библиотеки принято называть пакетами. Основные функции пакетов:

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

2.Уменьшение размера исполняемого файла за счѐт переноса части кода в пакет.

3.Экономия системных ресурсов, выделяемых приложению операционной системы.

Организация диалога

На странице Dialogs представлены компоненты для вызова стандартных диалогов Windows. Внешний вид диалогов зависит от используемой версии Windows. Объекты, представленные на данной странице невидимы во время выполнения и вызов диалогов происходит программно.

Диалоги Windows: OpenDialog; выбрать файл SaveDialog; сохранить файл FontDialog; настроить шрифт

ColorDialog; выбор цвета PrintDialog; печать

PrinterSetupDialog; настройка принтера

FindDialog; поиск строки

ReplaceDialog; поиск с заменой

TEdit - стандартный управляющий элемент Windows для ввода. Он может быть использован для отображения короткого фрагмента текста и позволяет пользователю вводить текст во время выполнения программы.

TMemo - иная форма TEdit. Подразумевает работу с большими текстами. TMemo может переносить слова, сохранять в Clipboard фрагменты текста и

69

восстанавливать их, и другие основные функции редактора. TMemo имеет ограничения на объем текста в 32Кб, это составляет 10-20 страниц.

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

При использовании окон редактирования для вывода, ввода и редактирования чисел необходимо использовать функции взаимного преобразования строк и чисел. Для вывода это описанные при рассмотрении меток функции FloatToStr и IntToStr. При вводе это функции StrToFloat — преобразование строки в значение с плавающей запятой, и StrToInt — преобразование строки в целое значение. Если вводимый текст не соответствует числу (например, содержит недопустимые символы), то функции преобразования генерируют исключение EConvertError. Поэтому в программе необходимо предусмотреть обработку этого исключения. Например:

var A: integer; try

A := StrToInt(Edit1.Text);

...{операторы, использующие переменную А} except on EConvertError do

ShowMessage('Вы ввели ошибочное число; повторите ввод'); Компонент RichEdit работает с текстом в обогащенном формате RTF. При

желании изменить атрибуты вновь вводимого фрагмента текста вы можете задать свойство SelAttributes. Это свойство типа TTextAttributes, которое в свою очередь имеет подсвойства: Color (цвет), Name (имя шрифта), Size (размер), Style (стиль) и ряд других. Например, введите на форму компонент RichEdit, диалог выбора шрифта FontDialog и кнопку Button, которая позволит пользователю менять атрибуты текста. В обработчик щелчка кнопки можно было бы ввести текст:

if FontDialog1.Execute then with RichEdit1.SelAttributes do begin

Color:=FontDialog1.Font.Color;

Name:=FontDialog1.Font.Name;

Size:=FontDialog1.Font.Size;

Style:=FontDialog1.Font.Style; end;

RichEdit1.SetFocus;

70

Соседние файлы в папке GOSY