Предисловие
Общаясь с другими разработчиками Delphi, я очень часто задаю один и тот же вопрос: "Ты помнишь, как все начиналось?.." Хотите верьте, хотите нет, но все началось со строки, написанной на доске во время очередной встречи группы Turbo Pascal R&D:
Button.Caption := 'OK';
Хотя эта строка может показаться слишком простой даже самому зеленому программисту на Delphi, именно она послужила истоком нового продукта. Это было самое начало 90-х годов, время, когда создание простейшего Windows-приложения напоминало скорее военную битву с запутанностью системы, марш-бросок через джунгли в полной боевой выкладке, десантирование в гущу сообщений, обратных вызовов, дескрипторов и указателей… Применение тяжелой артиллерии и танков в лице начинавших приобретать популярность OWL и MFC несколько облегчило жизнь, но только слегка: острые углы Windows просто выпирали из каждой строчки кода, и речь шла уже не столько о создании красавицы, сколько о попытках прикрыть скелет хотя бы неким подобием кожи, чтобы не содрогаться при случайно брошенном взгляде.
А здесь… Была изящная, простая и элегантная строка, вмещавшая в себя так много! Оставалась самая малость - создать нечто, способное воплотить эту строку в жизнь.
Мы отлично знали, что текущая версия Turbo Pascal, несмотря на всю нашу к ней любовь и уважение, не способна на такой подвиг без кардинальной переделки. Пришлось начинать работу с азов - не с создания среды, а с модернизации языка, в который мы добавили такие новшества, как ссылочная объектная модель, свойства, ссылки, указатели методов, а также информацию о типе времени исполнения (RTTI). Затем с использованием всех этих новшеств мы занялись созданием новой библиотеки. И только когда в библиотеку были добавлены такие классы, как TWindow (позднее превратившийся в TForm), TEdit и Tbutton, та самая изначальная строка стала реальностью. Это было увлекательное время! Мы были счастливы, как дети, получившие новую игрушку.
Постепенно из безымянного эксперимента игрушка превратилась в новый самостоятельный продукт, наиболее горячими поклонниками которого были Ксавье и Стив, знакомые с ним буквально с первого дня. Их многолетнее знакомство с Delphi вылилось в книгу, которую вы держите в руках.
Кстати, если вам интересно, мы до последнего момента не знали, как назвать наше детище. Вот несколько любопытных фактов из его жизни.
- Имя Delphi было предложено Дэнни Торпом (Danny Thorpe) во время одной мозговой атаки. Мы хотели, чтобы в имени отразились уникальные способности продукта к работе с базами данных, и Delphi как нельзя лучше перекликалось с таким заслуженным именем в этой области, как Oracle, по крайней мере для тех, кому сочетание "дельфийский оракул" о чем-то говорит…
- Кроме того, рассматривались (и были отвергнуты) такие имена, как Wasabi, AppBuilder, Mango и VisualFoo. Золотым самородком блеснуло имя VBK (Visual Basic Killer), но увы, было тут же отвергнуто бывшим президентом компании…
- Что означает префикс T в названиях классов? Не более чем type… Использование префикса пошло от соглашения с MacApp от Apple; мы впервые применили его в Turbo Vision в составе Turbo Pascal 6.
- Однако подсказки в среде - по настоянию уже упомянутого президента! - не показывают эту злополучную букву…
Чтение этой книги вызвало в моей душе множество воспоминаний о тех счастливых днях. Книга написана с любовью, специалистами и для специалистов, и я думаю, что она станет неотъемлемой частью вашей библиотеки по программированию.
Чак Язджевски (Chuck Jazdzewski)
Руководитель проекта Borland Delphi
Inprise Corporation
Июнь 1998 г.
Об авторах
Ксавье Пачеко (Xavier Pacheco) - президент и главный консультант фирмы XAPWARE Technologies, Inc., которая специализируется на разработке приложений клиент/сервер на Delphi. Ксавье соавтор трех книг о Delphi, он также регулярно пишет статьи для периодических изданий и групп новостей, посвященных Delphi. С женой Анной и дочерью Амандой живет в Колорадо. Связаться с ним можно по адресу: [email protected].
Стив Тейксейра (Steve Teixeira) - инженер-исследователь Inprise Corporation, работает над продуктами Borland Delphi и Borland C++ Builder. Стив является соавтором трех книг о Delphi, регулярно пишет статьи для периодических изданий, посвященных этому продукту, и неоднократно выступал с докладами на различных промышленных конференциях. Стив с женой и сыном живет в Бен Ломонде, в Калифорнии. Адрес его электронной почты: [email protected].
Введение
Трудно поверить, что всего каких-то четыре года назад мы приступили к написанию первого издания Руководства разработчика Delphi. В то время мы были всего лишь разработчиками, которые, работая в отделе поддержки языков фирмы Borland, обратили внимание на новый вызывающий программный продукт. Тогда же у нас родилась идея создания книги, охватывающей все аспекты, которые не рассматриваются в сухих официальных руководствах пользователей, и помимо обычного обучения раскрывающей множество узкоспециализированных вопросов, ответы на которые трудно найти в книгах и справочных руководствах. Наш опыт работы с Delphi позволял надеяться, что мы сможем ответить даже на незаданные вопросы. Мы поделились этой идеей с сотрудниками SAMS Publishing, и она показалась им привлекательной. И тогда начались изматывающие месяцы работы над рукописью, программирования и снова работы и программирования; я думаю, что несколько контрольных сроков оказались пропущенными именно из-за обилия программирования. Но всему приходит конец, и книга в какой-то момент оказалась написанной.
Против наших скромных ожиданий, продажи книги показали: это именно то, что "доктор (в нашем случае, скорее, разработчик) прописал". Оценкой наших усилий стало признание читателями того факта, что эта книга лучшая по тематике о Delphi.
Такая оценка не могла не вдохновить нас на дальнейшую работу, и нами были выпущены книги, посвященные Delphi 2 и Delphi 3. И наконец, мы создали книгу, которую вы держите в руках. Надеемся, что по количеству и качеству излагаемого материала она превосходит все созданное нами ранее.
В настоящее время Стив - инженер-исследователь в Inprise Corporation, он работает в области Delphi и Borland C++ Builder, а Ксавье основал собственную консалтинговую фирму XAPWARE Technologies, Inc., специализирующуюся на обучении Delphi. Надеемся, что уникальная комбинация нашего опыта разработчиков и практиков пошла на пользу книге.
Книга предназначена для тех, кто намерен разрабатывать приложения с помощью Delphi. Цель, которую мы ставили перед собой, - не просто рассказать, как создать приложения с помощью Delphi, но и объяснить, как правильно это сделать. Delphi - уникальный по своей мощи и возможностям инструмент разработки, который зачастую превосходит по уровню качества создаваемых им приложений компиляторы C++. Книга расскажет вам, как взять лучшее из этих двух миров и как создать по-настоящему хороший, ясный и эффективный код.
Книга разбита на пять частей. Часть I, "Эффективность работы и ее составляющие", посвящена основам программирования в Delphi и Win32. Часть II, "Профессиональное программирование", построенная на фундаменте первой части и на примерах создания маленьких, но полезных приложений, поможет расширить ваши знания и умения. В части III, "Компонентно-ориентированная разработка", обсуждается разработка компонентов VCL и приложений с использованием технологии COM. Часть IV, "Разработка баз данных", посвящена работе с базами данных в Delphi - от локальных таблиц до баз данных SQL, а в части V, "Быстрая разработка приложений баз данных", весь изложенный материал собирается воедино для построения масштабного реального приложения.
Главы на компакт-диске
При просмотре оглавления вы можете заметить, что часть глав находится на прилагаемом к книге компакт-диске, а не в бумажном варианте. Смысл этого прост: мы написали больше, чем может вместить в себя одна книга. У нас было несколько вариантов дальнейших действий - например, разбить книгу на два тома (тем самым сделав ее дороже). Другой вариант предусматривал удаление некоторых глав из книги полностью; при этом читатель получил бы материал с множеством "белых пятен". Выбранный нами путь обеспечивает компромисс между этими крайностями. Только не забывайте при чтении, что главы на компакт-диске - не приложения и не дополнения к книге, а ее неотъемлемая составляющая часть. Они были написаны, откорректированы и отредактированы с той же прилежностью и тщательностью, что и все остальные главы книги.
На кого рассчитана эта книга
Как гласит название книги, она предназначена для разработчиков. Итак, если вы разработчик программного обеспечения и используете Delphi, эта книга для вас. Мы предполагали, что книга заинтересует три основные группы читателей.
- Разработчиков на Delphi, желающих поднять свой уровень программистов.
- Опытных программистов на Pascal, BASIC или C/C++, намеревающихся приступить к работе с Delphi.
- Программистов, работающих с Delphi, но желающих научиться пользоваться всеми его возможностями, а также возможностями, предоставляемыми Win32 API.
Соглашения, использованные в книге
В этой книге использованы следующие типографские соглашения:
- Код, команды, переменные, операторы, типы, вывод программ, любой текст, который вы можете увидеть на экране, даны моноширинным шрифтом.
- Вводимые вами данные также приведены с использованием моноширинного шрифта.
- Заменители в описаниях синтаксиса приведены курсивным моноширинным шрифтом. Заменители в реальных командах замещаются настоящими именами файлов, параметрами или другими элементами, которые они представляют.
- Курсив используется для первого появления технических терминов в тексте, а также для выделения важных мест.
- Процедуры и функции указываются с помощью скобок () после имени. Хотя это и не является стандартным синтаксисом Pascal, но помогает отделить функции и процедуры от свойств, переменных и типов.
В каждой главе встречается несколько примечаний, советов и предостережений, которые помогут вам обратить внимание на наиболее важные моменты в изложении материала и избежать ошибок при работе.
Все исходные тексты и файлы проектов могут быть найдены на прилагаемом к книге компакт-диске. При работе с компакт-диском взгляните на каталог \THRDPRTY, в котором представлено много полезных инструментов и компонентов от сторонних производителей.
Дополнения к книге
Дополнения, исправления и обновления к книге можно найти в Web по адресу: http://www.xapware.com/ddg.
Итак, приступим
Нас иногда спрашивают, что движет нами, заставляя писать все новые и новые книги, посвященные Delphi? Это трудно объяснить. Ну хотя бы то, что, когда встречаешься с другим разработчиком Delphi и видишь у него в руках свою потрепанную книгу, понимаешь - жизнь потрачена не зря.
А теперь время отдохнуть и приступить к делу. И хотя мы не будем спешить, вы и оглянуться не успеете, как станете настоящим гуру в Delphi!