МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Программирование на Delphi

    Программирование на Delphi

    Этот курс посвящен среде разработки Delphi фирмы Borland (известной также

    как Inprise), которая на протяжении многих лет успешно выдерживает (и

    выигрывает!) жесткую конкуренцию с другими средами программирования.

    Концепция Delphi1 была реализована в конце 1994 года, когда вышла первая

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

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

    Object Pascal и визуального подхода к построению приложений.

    После выхода Delphi 1 все компьютерные издания писали об этой среде, как об

    “убийце Visual Basic”. Появление Delphi 2 (32-разрядной) ознаменовало новую

    эпоху, - появился доступ к возможностям программных интерфейсов Windows NT

    и Windows 95, протоколам OLE. Delphi 2 стала средством разработки

    полноценных приложений клиент/сервер. Вскоре Delphi 3 предоставила

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

    полноценный инструментарий проектирования приложений для Internet и

    intranet. Появилась полноценная поддержка COM - модели объектов, ставшей

    краеугольным камнем современного программирования. Четвертая версия Delphi

    позволяет полностью интегрировать ваши разработки с объектами COM.

    Поддержка архитектуры CORBA (Common Object Request Broker Architecture)

    открывает перед приложениями, созданными в Delphi для платформы Wintel

    (Windows + Intel), мир других операционных систем (UNIX, OS/2, WMS).

    Общаться с крупными корпоративными СУБД стало также просто, как и со старым

    добрым Paradox. Вы можете использовать в своей работе любые уровни

    межзадачного взаимодействия: от простейшего на уровне сокетов, до связи с

    такими перспективными инструментами, как Microsoft Transaction Server.

    Delphi представляет следующие новые свойства и усовершенствования:

    . Новые расширения языка. В Delphi в язык Object Pascal включены

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

    значения параметров по умолчанию, и многое другое.

    . Менеджер Проекта Новый менеджер проекта позволяет Вам объединять

    проекты которые работают вместе в одину проектную группу. Это

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

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

    работу исполняемых программ.

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

    по модулям, и браузер кода. Проводник кода делает создание классов

    проще, автоматизирую многие из шагов. Введите прототип метода в

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

    скелетный код в разделе реализации. Также проводник позволяет быстро

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

    реализацией. Использование символа Tooltip, позволяет просматривать

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

    борузер код, можно перейти к его объявлению.

    . Закрепляемые окна инструментов. IDE (Интегрированная Среда азработки)

    содержит более перенастраеваемую конфигурацию окон инструментов,

    которые можно закреплять с редактором кода. Просто перетащите и

    отпустите окно инструмента к тому месту, к которому хотите. Проводник

    кода и менеджер проекта можно как закреплять, так и незакреплять.

    . Улучшенная отладка. Интегрированный отладчик имеет много новых

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

    центрального процессора, инспекторов, усовершенствованные точки

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

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

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

    Вам создание объектов сервера MTS.

    . Усовершенствования ActiveX.

    . Delphi обеспечивает расширенную поддержку ActiveX.

    . Усовершенствования VCL. Иерархия объектов Delphi быда расширена, чтобы

    включить новый компонент для NT Service приложений. Кроме того, новый

    компонент выполняемого списка (на Стандартной странице палитры),

    позволяет Вам централизовать управление меню и команд от кнопок.

    Управление VCL расширено, чтобы поддерживають drag-and-drop

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

    окна, и многое другое.

    . Поддержка RTL для 2000-го года.

    . Глобальная переменная TwoDigitYearCenturWwindow используется функциями

    StrtToDate и StrToTateTime, чтобы управлять интерпретацией лет с двумя

    цифрами при преобразовании дат.

    . Поддержка CORBA. Версии Клинт/Сервер и предприятие включают поддержку

    для CORBA клиент и сервер приложений. Мастера помогут Вам легко

    создать сервер CORBA и Динамический Интерфейс Вызова (DII), позволяя

    Вам записывать клиентов для существующих серверов CORBA. CORBA имеет

    возможность поддержки в много-уровневых баз данных. Вы можете даже

    создать сервер, который обрабатывает COM клиентов и CORBA клиентов

    одновременно.

    Delphi - это комбинация нескольких важнейших технологий:

    . Высокопроизводительный компилятор в машинный код

    . Объектно-ориентированная модель компонент

    . Визуальное (а, следовательно, и скоростное) построение приложений из

    программных прототипов

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

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

    необходимую для построения приложений в архитектуре “клиент-сервер”. Он

    предлагает легкость разработки и быстрое время проверки готового

    программного блока, характерного для языков четвертого поколения (4GL) и в

    то же время обеспечивает качество кода, характерного для компилятора 3GL.

    Кроме того, Delphi обеспечивает быструю разработку без необходимости писать

    вставки на Си или ручного написания кода (хотя это возможно).

    В процессе построения приложения разработчик выбирает из палитры компонент

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

    компиляции он видит результаты своей работы - после подключения к источнику

    данных их можно видеть отображенными на форме, можно перемещаться по

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

    Delphi мало чем отличается от проектирования в интерпретирующей среде,

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

    10-20 раз быстрее, чем то же самое, сделанное при помощи интерпретатора.

    Кроме того, компилятор компилятору рознь, в Delphi компиляция производится

    непосредственно в родной машинный код, в то время как существуют

    компиляторы, превращающие программу в так называемый p-код, который затем

    интерпретируется виртуальной p-машиной. Это не может не сказаться на

    фактическом быстродействии готового приложения.

    Объектно-ориентированная модель программных компонент. Основной упор этой

    модели в Delphi делается на максимальном реиспользовании кода. Это

    позволяет разработчикам строить приложения весьма быстро из заранее

    подготовленных объектов, а также дает им возможность создавать свои

    собственные объекты для среды Delphi. Никаких ограничений по типам

    объектов, которые могут создавать разработчики, не существует.

    Действительно, все в Delphi написано на нем же, поэтому разработчики имеют

    доступ к тем же объектам и инструментам, которые использовались для

    создания среды разработки. В результате нет никакой разницы между

    объектами, поставляемыми Borland или третьими фирмами, и объектами, которые

    вы можете создать.

    В стандартную поставку Delphi входят основные объекты, которые образуют

    удачно подобранную иерархию базовых классов. Но если возникнет

    необходимость в решении какой-то специфической проблемы на Delphi,

    советуем, прежде чем попытаться начинать решать проблему “с нуля”,

    просмотреть список свободно распространяемых или коммерческих компонент,

    разработанных третьими фирмами, количество этих компонент в настоящее время

    составляет несколько тысяч. Событийная модель в Windows всегда была сложна

    для понимания и отладки. Но именно разработка интерфейса в Delphi является

    самой простой задачей для программиста.

    Объекты БД в Delphi основаны на SQL и включают в себя полную мощь Borland

    Database Engine. В состав Delphi также включен Borland SQL Link, поэтому

    доступ к СУБД Oracle, Sybase, Informix и InterBase происходит с высокой

    эффективностью. Кроме того, Delphi включает в себя локальный сервер

    Interbase для того, чтобы можно было разработать расширяемые на любые

    внешние SQL-сервера приложения в офлайновом режиме. азработчик в среде

    Delphi, проектирующий информационную систему для локальной машины (к

    примеру, небольшую систему учета медицинских карточек для одного

    компьютера), может использовать для хранения информации файлы формата .dbf

    (как в dBase или Clipper) или .db (Paradox). Если же он будет использовать

    локальный InterBase for Windows (это локальный SQL-сервер, входящий в

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

    составе большой системы с архитектурой клиент-сервер. Вот она -

    масштабируемость на практике - одно и то же приложение можно использовать

    как для локального, так и для более серьезного клиент-серверного вариантов.

    1. Основы объектно-ориентированного программирования

    Понятие класса.

    Классом в Delphi называется особый тип, который может иметь в своем составе

    поля, методы и свойства. Такой тип также называют объектным типом.

    type

    tMyClass=class(tObject)

    fMyFiled: integer;

    function MyMethod: integer;

    end;

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

    для каждого созданного в программе экземпляра класса. Описанный выше класс

    tMyClass имеет одно поле - fMyFiled. В отличие от полей, методы у двух

    экземпляров одного класса общие. Методы - это процедуры и функции,

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

    состав класса входит указатель на специальную таблицу - таблицу виртуальных

    методов (VMT), в которой содержится вся информация, необходимая для вызова

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

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

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

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

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

    и методов чтения/записи, обеспечивающих доступ к этому полю. При этом само

    поле декларируется как private (доступно только внутри данного класса), и

    доступ к нему возможен только посредством соответствующих методов.

    Подробнее свойства будут обсуждаться ниже.

    Понятие объекта

    Чтобы использовать новый тип в программе, нужно, как минимум, определить

    переменную этого типа. Переменная объектного типа называется экземпляром

    типа или объектом:

    var aMyObject: tMyClass;

    До введения понятия “класс” в языке Pascal существовала двусмысленность

    определения “объект”, который мог обозначать и тип, и переменную этого

    типа. Теперь существует четкая граница: класс - это описание, объект - то,

    что создано в соответствии с этим описанием.

    Создание и уничтожение объектов

    В отличие от С++ и Turbo Pascal в Delphi объекты могут быть только

    динамическими!!!. Это означает, что в приведенном выше примере переменная

    aMyObject на самом деле является указателем, содержащем адрес объекта.

    Объект создается конструктором и уничтожается деструктором.

    aMyObject := tMyClass.Create;

    //

    // действия с созданным объектом

    //

    aMyObject.Destroy;

    Следует обратить внимание на то, что для создания объекта aMyObject

    вызывается метод класса tMyClass.Create. Конструктор класса (и ряд других

    методов) успешно работает и до создания объекта. Однако большинство обычных

    методов (в частности все виртуальные и динамические методы). Вызывать до

    инициализации объекта не следует.

    В Delphi конструкторов у класса может быть несколько. Общепринято называть

    конструктор Create, в отличие от Turbo Pascal, где конструкторы назывались

    Init, и С++, в котором имя конструктора совпадает с именем класса. Типичное

    название деструктора - Destroy.

    type

    tMyClass=class(tObject)

    fMyFiled: integer;

    Constructor Create;

    Destructor Destroy;

    function MyMethod: integer;

    end;

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

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

    вызывает деструктор Destroy:

    procedure tObject.Free;

    До передачи управления телу конструктора происходит собственно создание

    объекта: под него отводится память, значения всех полей обнуляются. Далее

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

    объектов данного класса. Таким образом, несмотря на то, что синтаксис

    конструктора схож с вызовом процедуры (отсутствует возвращаемое значение),

    на самом деле конструктор - это функция, возвращающая созданный и

    проинициализированный объект.

    Примечание. Конструктор создает новый объект только в том случае, если

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

    объекта, он поведет себя по-другому: не создаст новый объект, а только

    выполнит код, содержащийся в теле конструктора.

    Чтобы правильно проинициализировать в создаваемом объекте поля, относящиеся

    к классу - предку, нужно сразу же при входе в конструктор вызвать

    конструктор предка при помощи зарезервированного слова inherited:

    constructor tMyClass.Create;

    Begin

    inherited Create;

    // Код инициализации tMyClass

    End;

    Как правило, в коде программ, написанных на Delphi, практически н

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

    компонент, попавший при визуальном проектировании в приложение из палитры

    компонентов, включается в определенную иерархию. Эта иерархия замыкается на

    форме (класс tForm): для всех ее составных частей конструкторы и

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

    и уничтожает формы? Это делает приложение (объект с именем Application). В

    файле проекта (с расширением DPR) вы можете увидеть вызовы метода

    Application.CreateForm, предназначенного для этой цели.

    Что касается объектов, создаваемых динамически (во время выполнения

    программы), то здесь нужен явный вызов конструктора и метода Free.

    Свойства

    Как известно, существует три основных принципа, составляющих суть объектно-

    ориентированного программирования: инкапсуляция, наследование и

    полиморфизм. Классическое правило объектно-ориентированного

    программирования утверждает, что для обеспечения надежности нежелателен

    прямой доступ к полям объекта: чтение и изменение их содержимого должно

    осуществляться посредством вызова соответствующих методов. Это правило

    называется инкапсуляцией (сокрытие данных). В старых реализациях ООП

    (например в Turbo Pascal) эта мысль внедрялась только посредством призывов

    и примеров в документации; в Delphi есть соответствующая конструкция.

    Пользователь объекта в Delphi может быть полностью отгорожен от полей

    объекта при помощи свойств.

    Обычно свойство определяется тремя элементами: полем и двумя методами

    осуществляющими его чтение/запись:

    type

    tMyClass=class(tObject)

    function GetaProperty: tSomeType;

    procedure SetaProperty(Value: tSomeType);

    property aProperty: tSomeType read GetaProperty

    write SetaProperty;

    end;

    В данном примере доступ к значению свойства aProperty осуществляется через

    вызовы методов GetaProperty и SetaProperty, однако в обращении к этим

    методам в явном виде нет необходимости: достаточно написать

    aMyObject.aProperty:=aValue;

    aVarable:= aMyObject.aProperty;

    и Delphi откомпилирует эти операторы в вызовы соответствующих методов. То

    есть внешне свойство выглядит в точности как обычное поле, но за всяким

    обращением к нему могут стоять вызовы необходимых программисту методов.

    Например, если есть объект, представляющий собой квадрат на экране, и его

    свойству “цвет” присваивается значение “белый”, то произойдет немедленная

    прорисовка, приводящая реальный цвет на экране в соответствие значению

    свойства.

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

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

    зависящих от вносимых изменений. Если же потребности в специальных

    процедурах чтения/записи нет, можно вместо имен методов применять имена

    полей.

    tPropClass=class

    fValue: tSomeType;

    procedure SetValue(aValue: tSomeType);

    property Value:tSomeType read fValue write SetValue;

    End;

    В этом примере поле fValue модифицируется при помощи метода SetValue, а

    читается напрямую.

    Если свойство должно только читаться или только записываться, в его

    описании может присутствовать только соответствующий метод:

    tReadOnlyClass=class

    property NotChanged:tSomeType read GetNotChanged;

    End;

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

    значение свойству NotChanged вызовет ошибку компиляции.

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

    Страницы: 1, 2, 3, 4, 5, 6, 7


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.