Главный файл проекта

В программе может быть любое количество модулей, но только один главный файл проекта. Этот файл содержит обращения к модулям. Он имеет расширение .dprи создается средой Delphi 7 автоматически.

------------------------------------------------------------------------------------------------------------------------

F12 – показать\скрыть форму

F11 – переключение в инспектор объектов ( левая нижняя панель)

F7 – пошаговая отладка

F8 – отладка, при которой не осуществляется вход в процедуры и функции

F4 – запуск программы и переход в режим отладки в том месте, где стоит курсор

*.pas – текст программы (программного модуля)

*.dfm – файл экранной формы

*.dpr - файл проекта

Запускать нужно файл с расширением .dpr

Kind – bkclose readonly – true x:=StrToFload(edit1.Text)

Visible – false

Edit2.visible := true;

label2.visible := true;

edit1.setfocus – перевод курсора в компонент edit1

 

 

№5 Понятие класса и объекта

В 80-х годах 20 века стали появляться первые коммерческие системы разработки, в которых была реализована новая парадигма – программирование, так называемый объектный подход, что позволило резко повысить производительность труда программиста. Этот подход был основан на понятии объекта - типа данных, в котором сочетаются как свойства (сгруппированные данные), так и методы их обработки (подпрограммы). Специалистам удалось выделить большой набор объектов, которые нужны при создании самых разных программ. Эти объекты используются повторно, без расходования времени на их программирование. Именно такой подход и реализован в среде Delphi 7.

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

Отметим различия в терминологии турбо паскаля и Delphi. В ранних версиях паскаля для описания объектного типа данных использовалось ключевое слово «object», и в то же время объектами назывались экземпляры этого типа. Применять слово «object» можно и сейчас, но подобная возможность поддерживается только для совместимости со старыми версиями Delphi. Вместо ключевого слова «object» правильно использовать слово «class»

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

Поля, свойства и методы класса называются членами класса.

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

Переменная, описанная как класс, фактически является указателем на экземпляр класса. Это сделано для повышения эффективности работы с ним. При работе с такими переменными достаточно обычного обращения к ним, как к обычным переменным, а к членам класса – как к полям записи – через точку.

 

№6 3 принципа объектно-ориентированного программирования (ООП)

1) Наследование.

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

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

Цепочки наследования могут быть неограниченной длины. Например, у класса «легковой автомобиль» могут быть классы-наследники (или дочерние классы): BMW и Citroen, обладающие дополнительными свойствами и методами (это классы, а не объекты, объектом будет конкретный автомобиль – например BMW 5-ой серии, а не марка этого автомобиля). При этом различные методы для каждого из наследников разрешается переопределять.

Наследование – создание нового класса на основе раннее описанного класса.

2) Полиморфизм

Когда происходит обращение к переменной, относящейся к классу Citroen и вызов унаследованного метода «двигаться», то программе приходится решать, какой конкретно метод необходимо вызвать: метод класса «автомобиль», «легковой автомобиль» или «Citroen». В соответствии с принципом полиморфизма решение принимается в зависимости от типа переменной, вызывающей этот метод. То есть если переменная описана как относящаяся к классу «Citroen», то будет вызван метод «двигаться» определенный именно для Citroen’а.

Полиморфизм – правильный выбор виртуального метода, вызываемого из переменной-ссылки на объект.

3) Инкапсуляция

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

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

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

события

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

 

№7 Описание класса. Реализация методов

Type имя_класса=class (имя_род_класса)

Список_членов_класса

End;

Имя родительского класса указывается, если новый класс должен наследовать все его характеристики (и характеристики всех родителей этого класса). Если имя родительского класса опустить, то новый класс по умолчанию будет наследовать характеристики базового класса «TObject», который содержит встроенные конструктор, деструктор и общие свойства и методы классов в среде Delphi, предназначенные для создания объектов, инициализации, освобождения памяти и т.д.

Иногда существует необходимость просто ввести в программу новый класс, пока не описывая его структуру, а только определив заголовок:

Type TMyclass=class;

В дальнейшем класс TMyclass должен быть полностью определен.

Type TMyclass=class

Count:integer;

Name:string;

Procedure ShowMyclass(Dis:Boolean);

Function GetCount:integer;

End;

В классе TMyclass имеются 2 поля: Count и Name, 2 метода: Procedure ShowMyclass и Function GetCount, возвращающая значение поля Count. По умолчанию считается, что все члены класса не имеют никаких ограничений на видимость.

Описание полей и свойств в классе должно предшествовать описанию методов.

Опишем объект – экземпляр класса TMyclass:

Var

MyClass : TMyClass;

Если в программе имеется описание,

Type T1=class(TObject);

T2=class(T1);

Var X : T1;

то в переменную «X» можно записывать как объекты типа «Т1» так и объекты типа «Т2».

Доступ к полям и методам объекта осуществляется с указанием нужного поля или метода через «.» (точку).

Var O : TMyClass;

O.Count:=O;

O.Name:=’класс’;

O.ShowMyClass(true);

Реализация методов

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

Function

TMyclass.GetCount:integer;

Begin

Result(либо GetCount):=count;

End;

 

Номер 28

Базы данных (БД)- это множество файлов предназначеных для хранения информации о некоторой предметной области.

БД – совокупность записей различного типа, содержащие перекрестные ссылки.

Записи одного типа в БД хранятся в таблицах.

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

Сама по себе БД- это только набор таблиц с перекрестными ссылками. Чтобы универсальным сопосбом извлекать из нее группы записей, обрыбытывать их, измнять и удалять требуется специальные программы называемые системами управления БД (СУБД).

 

№8. Пять уровней инкапсуляции. Вызов родительских методов.

 

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

  1. Раздел Public:

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

 

type TMyclass=class

public

Count:integer;

Name:string;

Pr ShowMyclass(Dis:Boolean);

F Getcount:integer;

End;

  1. Раздел private:

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

type TMyclass=class

private

Count:integer;

Name:string;

Public

Pr ShowMyclass(Dis:Boolean);

F Getcount:integer;

End;

По умолчанию считается, что все поля класса расположены в данном разделе (если перед полями нет ключевого слова то подразумевается слово Private.

  1. Раздел Protected:

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

  1. Раздел Published

В этом разделе располагаются свойства класса: т.е. поля доступные для редактирования и изменения значений во время проектирования приложения из инспектора объектов. По видимости свойства не отличаются от членов классов описанных в разделе Public.

  1. Раздел automated:

Правила видимости членов раздела совпадает с правилами видимости для раздела Public. Описание разрешается размещать в данном разделе только, если он является наследником стандартного класса TAutoObject, предназначенного для создания так называемых серверов автоматизации по технологии COM.








Дата добавления: 2017-02-20; просмотров: 531;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.019 сек.