ВВЕДЕНИЕ

Этот учебник предназначен для тех, кто самостоятельно или под руководством опытного преподавателя пытается научиться программировать, т.е. создавать программы, работающие под управлением современных 32/64-разрядных графических операционных систем (ОС) Windows 95/98/NT/Me/2000/XP/Vista (в дальнейшем - Windows 32/64).

ИСТОРИЯ PASCAL

В 1965 году был объявлен конкурс по созданию нового языка программирования преемника языка АЛГОЛ-60. Участие в конкурсе принял швейцарский ученый, поляк по происхождению, Никлаус Вирт, работавший доцентом на факультете информатики Стэнфордского университета. Проект предложенный им был отвергнут комиссией в 1927 году. Но Вирт не прекратил работу над созданием нового языка. Вернувшись в Швейцарию, совместно с сотрудниками Швейцарского федерального института технологии В Цюрихе, он уже в 1968 году разработал первую версию языка Паскаль. Язык назван в честь великого французского математика и механика Блеза паскаля, в 1648 г. создавшего первую счетную машину.

В 1965 г. была выпущена  версия языка АЛГОЛ: Algol-W в честь Никлауса Вирта. Сам язык модернизировался до 1968 г. (Algol-68), но из-за сложности не получил дальнейшего распространения.

В 1971 г. Н Вирт выпустил описание своего языка Паскаль, а в 1975 г было разработано руководство для пользователей, практически легшей в основу стандарта.

Однако такой документ появился только в 1982 г. международный стандарт ISO на язык Паскаль.

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

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

Именно это Вирт и сделал. В 1981 г. он разработал язык Модула-2, который должен был заменить Паскаль в универсальных применениях. Название происходит от MODUlar LAnguage. Процедурный язык высоко уровня, развитие языков Паскаль и Modula (1975 г.). Достоинства: поддержка многозадачности и мультипроцессорных систем. Однако Modula-2 не имел большого успеха. Как утверждают специалисты, основной причиной этого является то, что идеи, заложенные в Modula-2, были настолько революционными, что опережали время. Развитием языка Modula-2 стал язык Modula-3 (разработан совместно DEC и Olivetti ).

До этого времени, различные компиляторы Паскаля для микрокомпьютеров не имели особого коммерческого успеха, поскольку были дороги, занимали большой объем памяти на диске и работали с черепашьей скоростью. Но тут на арену вышел бывший студент Вирта со своим компилятором для микрокомпьютеров, который он назвал Турбо-Паскаль. Это был небольшой, мгновенно срабатывавший и удивительно дешевый компилятор.

Разработчиком Турбо-Паскаля стал "сумасшедший француз" по имени Филипп Кан. Родом из Парижа, Кан некоторое время учился в Цюрихе, где прослушал вводный курс Вирта по Паскалю. Вернувшись во Францию, он защитил диссертацию на степень кандидата наук по математике. В этот период он иногда подзарабатывал игрой на саксофоне в ночных клубах.

Кан занимался математикой, а компьютерами интересовался лишь постольку, поскольку это помогало ему в решении задач и доказательстве теорем. Затем он приобрел свой первый микрокомпьютер. Вместе с еще двумя приятелями он начал зарабатывать кое-какие деньги, составляя на Паскале прикладные программы для микрокомпьютеров. Неудовлетворенность существующими компиляторами Паскаля побудила Кана взяться за разработку Турбо-Паскаля. В 1982 г., имея на руках эту программу и 2000$ в кармане, он покинул Францию и уехал в Калифорнию.

В начале Кан не мог получить там даже работу. Путешествую по туристической визе, он не имел права на так называемую зеленую карточку правительственное разрешение на получение работы в США. В отчаянии он решил сделать ставку на Турбо-Паскаль и создал новую фирму "Borland International" название, подсказанное телевизионной передачей о бывшем космонавте с похожим именем. Кан решил, что имя, имеющее "всеамериканское звучание", послужит подходящим прикрытием для чужака в мире бизнеса.

Несмотря на громкое имя фирмы Кану не удалось заинтересовать даже представителей рискового капитала. Кан привлек к работе в своем новом предприятии других образованных новичков вроде бывшего владельца японского ресторана и официантки коктейль-бара, имевшей степень кандидата наук по психологии. Не имея возможности получить хотя бы доллар из официальных источников финансирования, Кан собрал небольшую сумму (20 000$) у членов своей семьи. В марте 1984 г. он организовал контору в двухкомнатном офисе над авторемонтным гаражом. Приступив к делу, Кан уговорил служащего одного популярного компьютерного журнала провести широкую рекламу Турбо-Паскаля в кредит.

Кан понимал, что рекламное объявление единственно возможный способ пробиться, и сделал все возможное. Прочитав книгу о продаже товаров по почте, где рекомендовалось использовать яркие цвета для привлечения читателей, он оформил объявление в резких зеленых, синих и розовых тонах. В книге также говорилось, что для быстрого успеха, стоимость товара должна быть ниже 50$. Поэтому он оценил свой сложный компилятор и редактор программ в 49$ и 95 центов. Эта была предельная нижняя граница остальные системы продавались в 10 раз дороже.

Реклама оказалась гениальной находкой для завоевания рынка. Только за первый месяц она принесла Кану заказов на 150 000$. Эксперты отмечали также быстродействие компилятора Кана, который работал во много раз быстрее, чем его соперники.

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

Турбо-Паскаль почти за одну ночь перевел "Borland International" в разряд основных производителей программного обеспечения. В 1985 г. Кан с легкостью выбросил 45 000$ на организацию приема, пригласив на него 600 клиентов фирмы и их гостей. Являя образец экстравагантности, он облачил свою внушительную фигуру в пурпурно-золотую тогу, увенчав волосы венком из виноградных листьев и исполнив в честь своего успеха, достигнутого в 33 года, несколько вещей на саксофоне.

Начиная с 1985 года фирма "Borland International" выпустила несколько версий языка Turbo Pascal начиная с версии 3.0 и заканчивая версией 6.0

Эволюция технических средств персональных компьютеров привела к повсеместному вытеснению старой “доброй” ОС MS-DOS значительно более мощными системами Windows, программирование для которых существенно сложнее, чем программирование для MS-DOS. Разработчики систем программирования, и прежде всего такие корпорации, как Microsoft и Borland, не замедлили выпустить соответствующие средства: уже в 1991 году, т. е. сразу после появления Windows 3.1, Borland выпускает Turbo Pascal for Windows, а в 1992 - усовершенствованную версию этой системы программирования - Borland Pascal with Objects 7.0. Эти первые специализированные инструменты требовали основательного знания Windows и были сложны в освоении.

Никлаус Вирт в настоящее время продолжает работать в Швейцарском федеральном технологическом институте. Последним изобретением Никлауса Вирта является язык программирования Oberon. Язык Oberon язык объектно-ориентированного программирования. Также как и  Modula-2 имеет сходный с Паскалем синтаксис. В Обероне отсутствует часть конструкций, присутствующих в Модуле-2. Одной из целей разработки являлось упрощение языка, исключение ситуаций, когда близкие по смыслу возможности реализовывались одновременно несколькими способами. Развитием языка является Oberon-2 . Помимо собственно языка программирования Оберон, существует операционная система Oberon, предназначенная как для установки на "голую" машину, так и поверх ОС и реализованная под различные платформы (Win32, DOS, Linux).

Фирма Borland International была приобретена фирмой Inprise, и в настоящее время продолжает выпускать свои продукты, но уже под логотипом фирмы Inprise.

Сейчас существует довольно большое количество средст написания программ на языке Pascal наиболее известными из них являются: Turbo-Pascal (Borland-Pascal), Object-Pascal (не путать с Delphi), Free Pascal и относительно молодой ABC Pascal, созданный российскими разработчиками.

ИСТОРИЯ DELPHI

В 1993 году Microsoft выпустила первую визуальную среду программирования Visual Basic, и программирование для Windows стало даже проще, чем программирование для MS-DOS. В ответ на это Borland в 1995 году выпустила первую версию Delphi (процедурный объектно-ориентированный язык высокого уровня фирмы Borland International, базирующийся на объектно-ориентированной версии языка Turbo Pascal и одноименная визуальная среда разработки), а затем, с интервалом в 1 год, - еще 4 версии: 2, 3, 4 и 5. В середине 2001 г. выпускается версия 6, а в 2002 была выпуща версия 7, которая и легла в основу этой книги. Замечу, что материал книги можно с некоторыми (часто несущественными) ограничениями использовать и для изучения более ранних версий. Недавно вышла Delphi 8 весомо отличающаяся от предыдущих версий.

Не секрет, что лучшим языком для изучения и освоения программирования является Паскаль, а лучшей в мире системой программирования для MS-DOS - Turbo Pascal. Delphi продолжила серию Паскаль-ориентированных средств программирования и, по моему глубокому убеждению, является наиболее удобным инструментом для Windows-программирования.

Основные отличия различных версий delphi

За сравнительно небольшой срок корпорация Borland выпустила 7 основных версий и несколько модификаций Delphi. Здесь мы рассмотрим основные черты существующих версий Delphi, сделав главный упор на более подробном анализе последней, 7-й версии, т. к. именно на этой версии базируется рассматриваемый в книге материал. Назначение главы - дать вам представление о той версии, с которой вы работаете, если, разумеется, это не 8-я версия Delphi. С другой стороны, она - удобное место утолить естественное любопытство тех из вас, кто уже имеет опыт работы с одной из ранних версий и хочет узнать особенности новейшей.

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

Версия 1

Первая версия появилась в мае 1995 г., когда еще не существовала Windows 95 (но тем не менее существовала Windows NT). Это единственная версия, работающая под управлением 16-разрядной Windows 3.1 (3.11). В ней впервые была опробована новая модель объектов, позаимствованная из различных объектно-ориентированных языков, и главным образом, из языка C++. Эта модель оказалась настолько революционной, что существовавшие в то время в поздних версиях Turbo Pascal объекты стали не нужны (их возможности полностью поглотила новая модель), а сама новая модель получила название классов.

Классы активно используют динамическую память, в связи с чем несколько изменилась нотация языка, а сам язык был назван Object Pascal. По сравнению с Turbo Pascal в него были внесены существенные дополнения и изменения, в том числе (здесь и далее перечисляются лишь наиболее важные изменения):

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

v введена внутренняя для функции переменная Result и разрешено игнорировать возвращаемый функцией результат;

v сняты ограничения на тип возвращаемого функцией результата (этот тип может быть любым, за исключением объектов старого стиля и файлов);

v введен механизм обработки исключительных ситуаций.

Библиотека компонентов 1-й версии с самого начала показала основную направленность вновь разработанной системы: программирование баз данных. С этой целью первая и все последующие версии Delphi снабжаются специальным инструментом доступа к данным BDE (Borland Database Engine машина баз данных корпорации Borland), а также сервером баз данных InterBase (этот сервер производится филиалом Borland компанией InterBase Software Corporation) и соответствующими средствами конфигурации сервера, его контроля и связи с ним.

Палитра компонентов первой версии состоит из 9 страниц и содержит 79 компонентов. В качестве дополнительных утилит поставлялись система генерации отчетов ReportSmith v.2.5 и входящая в ее состав автономно запускаемая утилита ReportSmith Run Time Viewer, утилита доступа к данным DatabaseDesktop v.5.1 и утилита конфигурации BDE - Database Engine Configuration v.2.5. Кроме того, утилиты WinSighte и WinSpecter предназначались для упрощения отладки разрабатываемых программ в среде 16-разрядных ОС Windows 3-х.

Версия 2

Вторая и все последующие версии Delphi предназначены для работы под управлением 32-разрядных ОС Windows 95/98/2000/NT (Windows 32). В нее были внесены многочисленные изменения, связанные с переходом на качественно новую ОС, в том числе:

v введена поддержка 16-битных (“широких”) символов и составленных из них строк;

v введен новый формат строк “обычных” 8-битных символов произвольной длины;

v введены новые типы данных - variant и currency;

v введен механизм фильтрации в табличные наборы данных TTable.

Начиная с версии 2, Delphi поставляется в нескольких комплектациях, отличающихся набором инструментальных средств и компонентов. Это соответствует более гибкой ценовой политике: минимальная по возможностям комплектация стоит 200-300 долларов, в то время как цена наиболее мощной комплектации может достигать нескольких тысяч. Во 2-й версии таких комплектов было 3: Desktop, Professional и Client/Server Suite. Далее описываются возможности наиболее мощной комплектации Client/Server Suite.

Среда разработки обогатилась Репозиторием Объектов и множеством полезных программ-экспертов (Wizards).

К утилитам добавлена весьма эффективная программа SQL Explorer v.1.02, существенно облегчающая операции с базами данных, и программа переноса данных Data Migration Expert, упрощающая переход к архитектуре клиент-сервер. Утилиты ReportSmith и DatabaseDesktop представлены более совершенными версиями 3.0 и 7.1 соответственно. Утилита Database Engine Configuration предыдущей версии переименована в BDE Configuration v.3.0. Введена утилита Image Editor v.2.0, служащая для создания различного рода изображений (произвольных рисунков, пиктограмм и курсоров), которые можно включать в файл ресурсов и использовать в работающей программе, и утилита SQL Monitor v.1.0, позволяющая просматривать SQL-запросы в процессе выполнения программы.

На 12 страницах галереи компонентов расположены 114 стандартных компонентов. В том числе на странице QReport размещены удобные компоненты для создания отчетов по хранящимся в базах данным. Эти компоненты оказались значительно эффективнее специальной утилиты ReportSmith, в связи с чем эта утилита не входит в поставку версии 3 и выше.

Версия 3

В июне 1997 г. вышла версия 3, и у многих работавших на ней сложилось мнение, что это одна из наиболее надежных версий Delphi.

Основные новшества этой версии:

v использование механизма пакетов для облегчения распространения и повторного использования компонентов;

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

v поддержка шаблонов компонентов;

v поддержка технологий СОМ, ActiveX, OLEnterprice и (частично) CORBA.

Третья версия поставлялась в 4 комплектациях: Standard, Professional, Client/Server Suite и Enterprise.

Состав утилит комплектации Client/Server Suite не изменился по сравнению с предыдущей версией, но изменились названия некоторых из них: BDE Configuration в этой и последующих версиях называется BDE Administrator, a Data Migration Expert - Data Migration Wizard. Ha 13 страницах галереи компонентов размещены 148 стандартных компонента. В модификации 3.5 введены дополнительные компоненты для реализации многозвенных баз данных.

Версия 4

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

К основным нововведениям этой версии относятся:

v изменения в языке: динамические массивы, перегружаемые методы, умалчиваемые параметры подпрограмм, новые типы int64, Real48 и Real как аналог Double;

v изменения в кодовом редакторе: автоматическое завершение кодовых заголовков свойств и методов; свойства браузера для поиска исходного кода; простой переход от заголовка метода к его реализации и обратно;

v технология “причаливания” инструментальных панелей Drag&Dock;

v механизм “действий” Action для унификации внешнего вида и поведения одинаковых по функциональному назначению интерфейсных элементов;

v улучшенная поддержка многозвенной архитектуры БД и распределенных вычислений.

На 14 страницах палитры компонентов размещены 182 стандартных компонента. В поставке Client/Server Suite утилита Data Migration Wizard получила название Data Pump.

Версия 5

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

Для этого, во-первых, в Delphi 5 включена поддержка технологии ADO (ActiveX Data Objects объекты данных, построенные как объекты ActiveX), которая усиленно развивается корпорацией Microsoft.

Во-вторых, сотрудники Borland и его подразделения InterBase Software Corporation разработали серию компонентов облегченного доступа к данным, хранящимся в таблицах сервера InterBase v.5.5 и выше (страница InterBase палитры компонентов). Эти компоненты также не требуют BDE и, таким образом, создают “облегченное” клиентское место.

Менее значительные изменения, внесенные в версию 5:

v включен эксперт создания и настройки произвольных модулей данных с расширенными возможностями представления взаимосвязи данных;

v улучшена технология MIDAS: для более гибкой работы с Microsoft Transaction Server введен повторно-входимый (stateless) брокер данных; упрощен процесс разработки интранет-приложений за счет компонентов новой страницы InternetExpress;

v значительные изменения внесены в интегрированную среду разработчика ИСР; в том числе:

v для улучшения координации коллективной работы над одним проектом введен новый инструмент - список To-Do;

v программист теперь может при желании использовать несколько вариантов настройки основных окон Delphi - например, для режима кодирования на экране могут не присутствовать отладочные окна, которые, наоборот, могут понадобиться в отладочном режиме; нужный вариант настройки легко выбирается новыми интерфейсными элементами в главном окне Delphi;

v введены фильтрующие свойства в окне Инспектора Объектов, упрощающие выбор нужного свойства;

v опции Инспектора Объектов теперь могут снабжаться небольшими пиктограммами, облегчающими правильный выбор нужной опции (например, радом с названием каждого цвета показывается небольшой прямоугольник, заполненный этим цветом, рядом с названием курсора - его вид и т. п.);

v существенно усилены возможности встроенного отладчика: точки отладочного останова можно группировать и сделать доступной или недоступной сразу группу точек; с каждой точкой останова можно связать одно или несколько действий, которые будут выполняться при достижении этой точки; с помощью команды Run | Attach to process можно отлаживать процесс, запущенный в другом экземпляре ИСР (эта возможность существенно упрощает отладку многозвенных приложений); с помощью выбора Run | Run Until Return в главном меню можно продолжить пошаговую отладку после завершения текущей подпрограммы и т. д.;

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

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

v внесены изменения в кодовый редактор, позволяющий настраивать используемые в нем “горячие” клавиши;

v несколько переработана встроенная справочная служба;

v внесены многочисленные изменения и дополнения в галереи компонентов (в новой версии наиболее мощной комплектации Enterprise на 20 страницах расположены 218 стандартных компонентов). Версия поставляется в 3 комплектациях: Standard, Professional и Enterprise. Состав утилит, входящих в комплектацию Enterprise, полностью соответствует утилитам комплектации Client/Server Suite предыдущей версии.

Версия 6

Версия 6 вышла в мае 2001 г., т. е. почти через 2 года после выхода 5-й версии. Эту задержку можно объяснить тем, что параллельно с работой над новой версией Delphi шла разработка варианта Delphi для ОС Linux - эта система программирования вышла в феврале 2001 г. и получила название Kylix. В результате 6-я версия Delphi имеет уникальную особенность: она способна создавать так называемые межплатформенные приложения, т. е. программы, которые одинаково успешно могут работать как под управлением Windows 32, так и под Linux.

Напомню читателю предысторию, связанную с этой ОС. Еще в самом начале 70-х годов в Bell Laboratories была создана переносимая система UNIX. Переносимость системы, т. е. ее способность миграции на различные аппаратные платформы, обеспечивалась тем, что практически вся она была написана на специально для этой цели разработанном языке С. Более того, почти весь компилятор этого языка был также написан на С! В результате для переноса ОС на новую аппаратную среду нужно было закодировать лишь сравнительно небольшой машинно-зависимый участок С, после чего транслировался исходный код компилятора, а затем и системы в целом. Таким образом, ОС UNIX принципиально существовала в исходных текстах, доступных широкому кругу программистов. Это обстоятельство использовали многие фирмы, создав собственные версии UNIX-подобных ОС, но уже не предоставляя пользователям исходные коды (например, ОС Solaris фирмы Sun).

В 1991 г. финский программист Линус Торвальдс решил создать полностью открытую UNIX-подобную ОС Linux. Полная открытость системы означает, что ее исходный код всегда доступен любому желающему. Для реализации своего замысла Л. Торвальдс привлек широкий круг программистов, опубликовав предварительный исходный код Linux в Интернет и пригласив всех желающих дополнять его своими разработками, но с обязательным условием: публикацией исходного кода этих разработок. Таким образом, эта ОС изначально разрабатывалась (и продолжает разрабатываться!) как полностью открытая и бесплатная система, которую может получить любой желающий [Как показала практика, бесплатность Linux относительна: некоторые фирмы за относительно небольшую плату (часто ненамного превышающую стоимость носителей информации) не только поставляют весьма громоздкие тексты этой ОС, но и обеспечивают покупателей информационной поддержкой по ее установке и эксплуатации.]. Не нужно быть провидцем, чтобы понять, как много потребителей (по некоторым оценкам, сегодня этой ОС пользуются около 8 млн. человек) решились отказаться от услуг Microsoft, вечной политикой которой была полная закрытость исходных текстов своих ОС, в пользу Linux, обеспечивающей, по утверждениям специалистов, не меньшую надежность, чем Windows NT, при приблизительно одинаковых возможностях [ Последнее не совсем точно. Тщательно отлаженные механизмы Windows Plug&Play, СОМ, Ас-tiveX, ADO, MTS и т. п. в сочетании с мощными возможностями Office, SQL Server, Internet Information Server и других подобных программ дают конечному пользователю гораздо больше возможностей, но... за плату и без исходных текстов.]. (Надежность Linux объясняется тем, что большая часть ее пользователейпрограммисты, которые не только выявляют ошибки, но и устраняют их. В этом смысле говорят, что Linux самая тщательно отлаженная ОС в мире.)

До появления Kylix единственными средствами программирования для Linux были системы на языках C/C++, Basic, Fortran. Kylix, а следом за ней Delphi 6, открывают богатейшие возможности VCL (вариант которой под Linux/Windows называется CLX - Borland Component Library for Cross-Platform Application) для разработки прикладных программ для Linux, что позволяет говорить об этой ОС как о потенциальном и весьма опасном конкуренте Windows.

Две другие особенности Delphi 6 также достойны особого упоминания: в ней сделаны дальнейшие шаги для поддержки Web-программирования (архитектура websnap) и разработаны драйверы и компоненты для максимально быстрой связи клиентских мест с некоторыми популярными промышленными серверами баз данных без BDE (компоненты страницы dbExpress).

Архитектура WebSnap продолжает и развивает ранее существовавшую в версиях 4 и 5 технологию Web Broker для создания Web-приложений. В ее основе лежит использование протокола SOAP (Simple Object Access Protocol - простой протокол доступа к объекту). В сочетании с бесплатно распространяемым Web-сервером Apache эта технология позволяет отказаться от дорогостоящих средств Windows NT Server и Internet Information Server в пользу связки Linux + Apache.

Технология dbExpress поддерживает непосредственный доступ к таким популярным серверам БД, как MySQL, Oracle, DB2. Если учесть, что сервер MySQL шведской компании ТсХ распространяется бесплатно для домашнего применения на платформе Linux и за очень небольшую плату для неограниченного количества подключений и примерно на тех же условиях распространяются серверы Oracle и DB2 (но без исходных кодов), становится очевидным, что популярная до недавнего времени дорогостоящая связка Windows NT Server + Microsoft SQL Server испытывает сильнейшее конкурентное давление.

Таким образом, основной идей Delphi 6 является обеспечение перехода от дорогих патентованных решений корпорации Microsoft к бесплатным (или почти бесплатным) решениям на базе Linux.

На 27 страницах палитры компонентов размещены 387 компонентов (в режиме CLX - 211 компонентов на 21 странице).

Delphi 7

В начале августа 2002 компания Borland объявила о выходе Delphi 7 Studio — новой версии самого популярного средства разработки этой компании, предназначенного для создания Windows-приложений.

Borland Delphi 7 Studio существует в четырех редакциях: Architect (для реализации сложных проектов масштаба предприятия), Enterprise (для моделирования и создания распределенных приложений), Professional (для разработки Windows-приложений и Web-приложений, а также Web-сервисов) и Personal (в основном для создания некоммерческих приложений и изучения продукта).

Ниже мы кратко рассмотрим основные особенности различных редакций Delphi 7 Studio.

Поддержка Microsoft .NET

В Delphi 7 с помощью диалоговой панели Import Type Library можно создать COM-интерфейсы к сборкам Microsoft .NET c применением COM Interop — средств обеспечения совместимости COM и .NET.

Для того чтобы можно было создавать приложения, в дальнейшем совместимые с платформой Microsoft.NET, в компилятор Delphi были добавлены три дополнительных сообщения: Unsafe_Type, Unsafe_Code и Unsafe_Cast. Эти сообщения указывают на то, что корректность выполнения указанных операторов не может быть проанализирована Just-In-Time-компилятором Microsoft .NET (примерами таких операторов являются манипуляции с указателями и непосредственная запись в ячейки памяти).

Данные сообщения можно сделать доступными с помощью директивы {$WARN UNSAFE_CODE ON}, запуска компилятора с соответствующим ключом (dcc32 -W+UNSAFE_CODE) либо отметив соответствующие опции на странице Compiler Messages диалоговой панели Project Options.

И наконец, во все редакции Delphi 7 включена предварительная версия (preview) компилятора Delphi for .NET, позволяющая создавать приложения для платформы .NET. Впрочем, этот компилятор заслуживает отдельного разговора и, если будет такая возможность, мы вернемся к этой теме чуть позже.

Поддержка UML и Model Driven Architecture

В числе особенностей Delphi 7 Studio стоит отметить поддержку MDA (Model Driven Architecture) и наличие средств UML-моделирования — эти дополнения позволяют рассматривать Delphi не просто как инструмент быстрой разработки приложений, но и как набор средств реализации крупных проектов масштаба предприятия, содержащий все необходимые инструменты для решения этой задачи.

ModelMaker, продукт компании ModelMaker Tools BV, входящий в состав редакций Architect и Enterprise, представляет собой инструмент визуального UML-моделирования классов и приложений. С его помощью можно создавать модели приложений и генерировать их код.

Кроме того, в редакцию Delphi 7 Studio Architect входит продукт Bold for Delphi компании BoldSoft, включающий набор компонентов и редактор UML-моделей и предназначенный для создания приложений на основе подобных моделей. Данный продукт поддерживает UML-модели ModelMaker и Rational Rose и позволяет на основе UML-модели генерировать клиентские приложения и бизнес-объекты для среднего звена многозвенных приложений, а также создавать схемы баз данных, снижая тем самым затраты, связанные с созданием приложений. При применении этого продукта можно избежать написания и отладки большого количества кода, описывающего логику работы различных составных частей приложения.

 

Отметим, что Bold for Delphi поддерживает обмен данными между звеньями приложений с помощью HTTP, COM, XML, SOAP, а в качестве механизмов доступа к данным поддерживает BDE, ADO, dbExpress, DBISAM, прямой доступ к IB Database и Advantage Database Server.

Создание Web-приложений и Web-сервисов

В состав Delphi 7 включены новые компоненты IntraWeb, лицензированные у компании AtoZed Software. Эти компоненты позволяют проектировать пользовательский интерфейс Web-приложений с помощью дизайнера форм — возможность, которой, пожалуй, явно не хватало предыдущим версиям Delphi (впрочем, компоненты независимых производителей, реализующие подобную функциональность, существуют со времен чуть ли не Delphi 1). При этом созданные формы можно (но не обязательно) использовать в приложениях WebSnap и Web Broker.

Полный набор компонентов IntraWeb содержится в редакциях Architect и Enterprise, а в версии Professional имеются некоторые из этих компонентов. Напомним, что создание приложений WebSnap и Web Broker возможно в редакциях Architect, Enterprise и Professional.

К компонентам Indy добавлены компоненты Indy Intercepts и Indy I/O Handlers, предназначенные для реализации ввода и вывода с применением шифрования, SSL, сжатия и преобразования данных, создания log-файлов. Напомним, что компоненты Indy доступны пользователям редакций Professional, Enterprise и Architect.

Помимо этого с помощью Delphi 7 можно создавать Web-приложения и Web-сервисы для Apache 2.

Что касается поддержки Web-сервисов, отметим добавление в WSDL Import Wizard UDDI1 -браузера, позволяющего осуществлять поиск нужного Web-сервиса в UDDI-реестрах и получать URL его WSDL-описания.

Также следует отметить появление новых классов и интерфейсов, позволяющих читать и добавлять заголовки в SOAP-конверты для обмена сообщениями между клиентами и серверами, возможность использования вложений в SOAP-сообщениях, а кроме того, ряд изменений в поддержке типов данных, которыми клиентские приложения обмениваются с Web-сервисами (например, к классу TRemotable добавлены два виртуальных метода — ObjectToSOAP и SOAPToObject, с помощью переопределения которых можно описать правила преобразования классов, предназначенных для представления в виде Web-сервисов, в их SOAP-представление). Стоит упомянуть о наличии новых событий, позволяющих выполнить определенные действия перед отправлением HTTP-сообщения, перед или после вызова методов Web-сервисов и в процессе генерации WSDL-данных, а также ряд новых возможностей, связанных с созданием правил соответствия WSDL параметрам методов, возвращаемым значениям и действиям по умолчанию.

Доступ к данным

В Delphi 7 обновлены драйверы dbExpress. Теперь они поддерживают Informix SE, Oracle9i, DB2 7.2, InterBase 6.5, MySQL 3.23.49. Добавлен драйвер dbExpress для Microsoft SQL Server 2000.

Пользователям Delphi, имеющим многолетний стаж работы с этим продуктом, компания Borland настоятельно рекомендует исключить из применения драйверы SQL Links — никаких изменений в них далее не планируется и в последующих версиях Delphi они будут отсутствовать. Вместо них в Borland советуют использовать технологию dbExpress (соответствующий документ «The Future of the Borland Database Engine (BDE) and SQL Links», подготовленный Джоном Кастером, можно найти по адресу http://community.borland.com/article/0,1410,28688,00.html).

Напомним, что драйверы SQL Links и dbExpress для серверных СУБД ведущих производителей (IBM/Informix, Microsoft, Oracle, Sybase) доступны в редакциях Professional, Enterprise и Architect.

На странице dbExpress палитры компонентов можно найти компонент TSimpleDataSet, предназначенный для применения в двухзвенных приложениях (его следует использовать вместо TSQLClientDataSet).

В VCL добавлен новый модуль DBClientActns, содержащий классы для работы с клиентскими наборами данных (client datasets): TClientDataSetApply, TClientDataSetUndo и TClientDataSetRevert.

Технология DataSnap

В приложениях DataSnap, которые могут создавать пользователи редакций Architect и Enterprise, вместо интерфейса IAppServer теперь применяется интерфейс IAppServerSOAP. Клиентские приложения, предназначенные для применения с серверами, разработанными с помощью прежних версий Delphi, можно создавать путем использования свойства UseSOAPAdapter компонента TSoapConnection.

К серверам DataSnap, имеющим несколько модулей данных, теперь можно добавить специальный модуль данных SOAP. Кроме того, с помощью компонента TSOAPConnection можно обращаться к расширениям интерфейсов серверов приложений.

Отметим, что поставка распределенных DataSnap-приложений, разработанных с помощью Delphi 7 Studio, может осуществляться без дополнительного лицензирования.

Rave Reports

В состав редакций Delphi 7 Enterprise и Professional включены компоненты Rave Reports компании Nevrona, позволяющие создавать отчеты высокого качества и поддерживающие механизмы доступа к данным ADO, BDE и dbExpress (при этом в качестве источника данных можно, хотя и не обязательно, использовать компоненты доступа к данным VCL, например IBExpress). Можно включать в отчеты Rave Reports штрих-коды, графику, сохранять отчеты в различных форматах, в том числе и в Adobe PDF, внутрь исполняемого файла приложения вставлять не только сам отчет, но и дизайнер отчетов.

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

Поддержка элементов управления и тем Windows XP

VCL-приложения теперь поддерживают элементы управления Windows Сommon Сontrols версии 6. Это означает, что в созданных с помощью Delphi 7 VCL-приложениях, запущенных в Windows XP, можно отображать элементы управления способом, характерным для данной операционной системы. Для этого в каталог, где находится исполняемый файл приложения, следует добавить специальный файл манифеста. Последний представляет собой XML-документ, содержащий сведения о том, каким образом данная операционная система должна отображать элементы управления данного приложения. Отметим, что эта возможность доступна пользователям редакций Professional, Enterprise и Architect.

Другие изменения в среде разработки, библиотеках VCL и CLX

Из изменений в среде разработки следует упомянуть о наличии в меню команды View|Additional Message Info, с помощью которой можно получить последнюю версию списка сообщений компилятора с Web-сайта Borland. Отметим, что в диалоге Project Options можно указывать, какие именно типы сообщений компилятора необходимо отображать.

Для проектов CLX-приложений имеется своя версия страницы System палитры компонентов, содержащая компоненты для отображения и выбора каталогов и файлов.

На странице Dialogs палитры компонентов добавлен компонент TPageSetupDialog, позволяющий использовать в приложении стандартную диалоговую панель для управления параметрами страницы при печати документов. На странице Additional появились новые компоненты TXPColorMap, TStandardColorMap, TTwilightColorMap, предназначенные для изменения внешнего вида меню и инструментальных панелей.

CLX-версии компонентов TOpenDialog и TSaveDialog теперь поддерживают некоторые новые возможности, такие как предварительный просмотр файлов.

VCL-версия класса TCustomForm теперь приобрела новые свойства ScreenSnap и SnapBuffer, с помощью которых можно указывать, располагается ли данная форма автоматически вдоль края экрана при ее перемещении (подобно тому, как ведет себя панель задач Windows).

Класс TCustomComboBoxEx обладает свойством AutoCompleteOptions, позволяющим управлять тем, как именно его наследники обрабатывают пользовательский ввод с клавиатуры.

CLX-классы, являющиеся наследниками классов TOpenDialog и TQtDialog, теперь могут использовать как диалоги из библиотеки Qt, так и стандартные диалоги Windows — для этого они оснащены новым свойством UseNativeDialog.

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

Класс TStrings теперь обладает свойствами ValueFromIndex и NameValueSeparator, что позволяет определить значения по номеру строки и указать, какой символ отделяет имена параметров от значений.

В модуль StrUtils внесен ряд изменений, связанных с поддержкой многобайтовых наборов символов. В частности, теперь функции LeftStr, RightStr, MidStr поддерживают данные типа WideString, однако при этом для хранения однобайтовых значений в строках AnsiString следует применять новые функции LeftBStr, RightBStr, MidBStr и соответствующим образом изменять код старых проектов, в которых использовались эти функции. Ряд изменений был также внесен и в модуль SysUtils.

Поддержка Linux

С помощью Delphi 7 Studio можно создавать как Windows, так и Linux-приложения — для этой цели в состав всех редакций Delphi 7, кроме Personal, включен Borland Kylix 3 for Delphi — выпущенная этим летом новая версия средства быстрой разработки приложений для Linux. Напомним, что исходные тексты проектов Delphi и Kylix, созданные с применением библиотеки компонентов CLX, являются переносимыми между этими платформами.

Заключение

 Вы заметили, что более подробно рассмотрены особенности Delphi 7 Studio — новой версии самого популярного средства разработки компании Borland, предназначенного для создания Windows-приложений. Видно, что этот продукт приобрел много новых особенностей, существенно повышающих его ценность как средства разработки приложений масштаба предприятия, инструмента создания Web-сервисов и интеграции приложений, средства создания многоплатформенных приложений, поддерживающего самые современные технологии и обладающего весьма заманчивыми перспективами (такими, например, как полноценная поддержка Microsoft .NET). Поэтому этот продукт заслуживает пристального изучения, чем мы с вами и займемся.

На главную

 

 

Используются технологии uCoz