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

Состав Delphi и требования к системе

Прежде, чем приступать к работе с какой-либо программой, было бы полезно ознакомиться с ее требованиями к компьютеру. Разумеется, требования у разных версий Delphi разнятся, постепенно повышаясь от версии к версии. В частности, в рассматриваемой нами Delphi 7 рекомендуется процессор не ниже Pentium II и не менее 256 Мбайт оперативной памяти. Более ранние версии требовали меньший объем памяти, однако для комфортной работы я в любом случае рекомендовал бы не менее 256 Мбайт, а для Delphi 7 и выше, да еще и под управлением ОС Windows XP, не помешало бы иметь 512 Мбайт ОЗУ.

Что касается требований к операционной системе, то хотя формально Delphi может работать на любой 32-разрядной версии Windows, я бы настоятельно рекомендовал использовать Windows из линии NT, т.е. Windows 2000 или XP. Дело в том, что Windows 9x, из-за своего 16-разрядного наследия, имеет серьезные ограничения на количество доступных системных ресурсов, вне зависимости от того, насколько мощный ПК вы используете. Кроме того, Windows 9x не может эффективно задействовать даже относительно большие - свыше 128 Мбайт - объемы оперативной памяти. Я уже не говорю о том, что в Windows 9x не поддерживаются ни многопоточность, ни набирающие в последнее время популярность двуядерные процессоры, а производители аппаратных компонентов ПК давно уже забросили оптимизацию драйверов для данного семейства ОС. Результатом всего этого является низкая производительность на современных компьютерах и вполне ощутимый риск "повесить" систему в процессе работы над сложным и ресурсоемким приложением.

Еще один важный вопрос - это монитор. Опять-таки, формально достаточно любого SVGA-монитора. Но работать в среде Delphi при разрешении экрана ниже, чем 1024 на 768 точек, крайне затруднительно: учтите, что вам постоянно надо видеть как элементы управления самой Delphi, так и собственное (разрабатываемое) приложение. Для комфортной работы я бы рекомендовал качественный 19" монитор с рабочим разрешением 1280 на 1024 точки. Причем, если это будет обычный монитор на ЭЛТ (или даже ЖК, но с аналоговым подключением), то вам понадобится еще и качественная видеокарта, способная обеспечить кристально четкую, без "замыливания" картинку. Для ЭЛТ-мониторов также важно обеспечивать поддержку указанного разрешения при частоте регенерации изображения не ниже 85 Гц.

ПРИМЕЧАНИЕ
Помните, что программирование - это напряженная работа с текстом. И если ваша связка "видеокарта-кабель-монитор" не может выдать четкий текст и (или) отсутствие видимого мерцания в нужном вам разрешении, то со временем вы рискуете испортить себе зрение.

Определившись с компьютером, перейдем к установке. В процессе установки про-грамма спросит вас, для каких версий тех или иных третьесторонних приложений следует устанавливать компоненты. Прежде всего, это версии MS Office, для одной из них вы сможете установить набор компонент, обеспечивающих взаимодействие между приложениями office и Delphi. Если вы устанавливаете старшую версию Del-phi (Client/Server, Enterprise, Architect), то вас спросят еще и о том, для каких версий баз данных следует установить компоненты. Наконец, в процессе установки, помимо самой Delphi будут установлено множество дополнительных программ, в основном, связанных с базами данных. Причем некоторые из них (например, сервер InterBase или виртуальная Java-машина) вообще устанавливаются отдельно, хотя и в процессе общего хода инсталляции.

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

  • Image editor - простой графический редактор для рисования иконок и курсоров. За время, прошедшее с момента последнего обновления (в 1996 году), морально устарел, но может пригодиться, если нет ничего другого;
  • WinSight - позволяет просматривать отладочную информацию в любых работающих приложениях;
  • BDE Administrator - позволяет настраивать базы данных;
  • Data Pump - позволяет переносить данных между БД;
  • Database Explorer или SQL Explorer - средство просмотра БД;
  • SQL Monitor (только старшие версии) - позволяет отслеживать обращения приложений к SQL-серверу.

Кроме того, в этой группе будет находиться подгруппа Help, а в ней, среди множества справочных файлов, - еще одна, с еще большим их количеством - MS SDK Help Files. Так вот, все эти файлы вам придется регулярно использовать, причем положение усугубляется не только их количеством и объемами, но и тем, что в русском варианте их не существует. Таким образом, знание английского языка будет вам хорошим подспорьем при изучении как Delphi, так и программирования вообще.

СОВЕТ
Если вы не знаете английского, но владеете немецким или французским, то вы можете установить версию Delphi на том языке, который знаете лучше. Русских версий Delphi, равно как и других серьезных средств разработки, нет, никогда не было, и, увы, даже не предвидится.

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

Интегрированная среда разработки

Интегрированная среда разработки Delphi (Delphi IDE) является многооконной системой. Она включает в себя все необходимое для быстрой разработки Windows-приложений, и может гибко настраиваться.

Тем не менее, как и всякая другая программа, Delphi имеет некоторый стандартный, предусмотренный разработчиками вид, в котором она предстает вам при первом запуске. В таком "стандартном" варианте среда Delphi имеет 6 окон (рис. 2.1). Это: главное окно (Delphi 7 - Project1), окно дерева объектов (Object TreeView), окно инспектора объектов (Object Inspector), окно конструктора форм (Form1), а так же совмещенное окно редактора кода и проводника кода (на заднем плане, под Form1). При этом окно проводника пристыковано к левому краю окна редактора. Впрочем, ничего не мешает отсоединить проводник от редактора, или, наоборот, состыковать все окна, кроме главного и конструктора форм, в одном окне, или объединить их по какому-либо иному принципу.

Рис. 2.1. Вид Delphi 7 IDE по умолчанию

К вопросу об удобстве следует отметить, что предлагаемая разработчиками компоновка годится, в принципе, для любого экранного разрешения. Но если у вас имеется возможность установить разрешение экрана в значение 1280 на 1024 точки, то вы можете скомпоновать все кнопки главного окна в одной строке, а все освободившееся внизу место выделить для палитры компонентов (рис. 2.2).

Рис. 2.2. "Оптимизированный" вид главного окна Delphi

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

  • Debug - отладка. Позволяет запустить программу (Run), приостановить ее выполнение (Pause), а так же выполнять построчное выполнение программы;
  • Standard - стандартные. Служит для таких операций, как сохранение, созда-ние, добавление и удаление файлов;
  • View - вид. Используется для быстрого нахождения форм и файлов проекта;
  • Desktops - рабочая среда. С помощью этих инструментов можно переклю-чаться между различными настройками рабочей среды Delphi;
  • Custom - произвольная. Изначально содержит одну-единственную кнопку - для вызова справки;
  • Component palette - палитра компонентов. Содержит все доступные для разработки приложений компоненты.

Отметим, что все инструментальные панели настраиваются: кнопки можно перемещать между панелями, добавлять на них новые, или же удалять. Для обычных панелей (Standard, View, Debug) это делается точно таким же образом, как во многих других современных Windows-приложениях (например, как в Word, т.е. при помощи окна настройки - Customize).

Что касается самой большой панели - палитры компонентов, то для ее настройки следует использовать специальное окном свойств палитры (рис. 2.3). Это окно доступно через пункт Configure Palette из меню Component. Однако учтите, что при настройке важно знать как предназначение компонент, так и понимать принципы их организации, поэтому максимум, что можно себе позволить для начала - это поменять местами группы, перетаскивая их в списке страниц (Pages).


Рис. 2.3. Настройка палитры компонентов требует знания VCL

ПРИМЕЧАНИЕ
Следует учитывать, что поскольку палитра компонентов является ничем иным, как визуальным представлением VCL, то ее вид и состав могут меняться в зависимости от того, какие модули подключены, устанавливались или нет дополнительные компоненты или их наборы, и т.д. В любом случае, в начале изучения Delphi, экспериментов в этой области лучше не производить.

Все компоненты сгруппированы по вкладкам, число и состав которых несколько разнятся в зависимости от версии и варианта поставки. Так, в Delphi 7 Enterprise имеется 33 вкладки, содержащие компоненты, принадлежащие к той или иной группе VCL (табл. 2.1).

Таблица 2.1. Страницы палитры компонент Delphi 7 Enterprise

Страница

Название

Описание

Стандартные

Основные элементы интерфейса приложений Windows (меню, кнопки, подписи и т.п.)

Дополнительные

Набор улучшенных элементов управления, имеющихся в VCL

32- разрядные Windows

Элементы интерфейса приложений, характерные для Windows 95 и последующих версий этой ОС

Системные

Элементы управления и доступа к системным 16 ункцииям Windows (таймер, OLE , DDE )

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

Стандартный набор компонент для доступа к БД

Элементы данных

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

Компоненты для доступа к БД при помощи SQL -драйвера dbExpres

Компоненты для взаимодействия с удаленный web -сервером через SOAP

Компоненты для взаимодействия с сервером через DCOM

Borland Database Engine

Компоненты для доступа к БД посредством BDE (классический вариант для простых БД)

Компоненты для взаимодействия с БД через ADO

Компоненты для прямого взаимодействия с БД InterBase

Администрирование InterBase

Компоненты для взаимодействия и управления сервером БД InterBase

Компоненты для взаимодействия с данными через XML

Компоненты для работы с данными через различные протоколы Интернета

Набор ActiveX -компонент для работы через Интернет

Набор компонент для обработки информации в БД

Стандартные и расширенные диалоговые окна

Компоненты пользовательского интерфейса, характерные для Windows 3.1

Несколько визуальных компонент, не являющихся официально поддерживаемыми

Несколько встраиваемых ActiveX- приложений

Rave Repo rts

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

Клиенты Indy

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

Серверы Indy

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

Обработчики Indy

Набор компонент, позволяющих отлавливать сообщения от клиентов и серверов Indy

Indy i/o ha ndlers

Ввод-вывод Indy

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

Утилиты Indy

Набор вспомогательных компонент, полезных при разработке различных TCP -приложений

Содержит компонент, позволяющий создать управляющий сервер COM +

IW Standard , Data, Client Side, Control

Набор специальных кросс платформенных компонент для создания Web -приложений для любых Web -клиентов, включая КПК и смартфоны

MS Office Servers

Набор ActiveX -компонент для взаимодействия с приложениями Microsoft Office

Суммарно Delphi включает в себя сотни компонент, однако не стоит переживать по поводу огромного их количества: Delphi применяется во многих областях, и вряд ли хоть один разработчик в действительности использовал все доступные компоненты. Так что мы выделим наиболее полезные для нас группы, а именно: стандартные, дополнительные, 32-разрядные Windows, системные и диалоги. Этого набора будет более чем достаточно для начала изучения Delphi. Со временем мы ознакомимся так же с классическими компонентами для доступа к БД (Data Access и Data Controls), а так же с несколькими компонентами из богатой коллекции Indy. На этом введение в палитру компонент можно считать завершенным и перейти к дальнейшему ознакомления со средой, для чего перейдем к детальному исследованию главного окна, начав с его меню, которое состоит из 11 пунктов:

  • File - файл. Операции с файлами, вроде создать, открыть, сохранить;
  • Edit - правка. Операции редактирования, как стандартные для текстового процессора (отмена, копирование-вставка), так и специфические для редактирования разрабатываемых окон приложений (выравнивание, порядок со-здания и т.п.);
  • Search - поиск. Различные варианты поиска и замены;
  • View - вид. Переключение между различными окнами - как относящимися к IDE, так и к разрабатываемому приложению;
  • Project - проект. Все операции по работе с проектом, как то добавление и удаление файлов, настройки, сборка и компиляция;
  • Run - выполнить. Средства для отладки программ;
  • Component - компоненты. Средства для работы с компонентами, включая настройку палитры компонент;
  • Database - Данные. Некоторые средства для работы с БД;
  • Tools - сервис. Настройка параметров IDE, а так же вызов вспомогательных программ (Image editor и др.);
  • Windows - окно. Содержит список всех открытых в текущий момент окон и позволяет переключаться между ними (актуально, когда окон много и одни загораживают другие);
  • Help - справка.

Таким образом, мы уже исследовали все главное окно IDE Delphi. Что касается остальных окон, то их предназначение мы узнаем по ходу дальнейшего ознакомления со средой, а относительно их расположения, да и вообще необходимости в некоторых из них, то это - вопрос личных вкусов и специфики разрабатываемого приложения - общие рекомендации тут были бы неуместны.

Проекты в Delphi

Разработка приложений в Delphi означает работу с проектами. Иначе говоря, когда вы приступаете к разработке собственной программы в Delphi, первым делом создается проект - группа файлов, представляющих исходные данные (прежде всего, код) для приложения. Одни из этих файлов создаются во время разработки приложения (собственно программный код, включая файл проекта, и представленные в виде кода формы), другие же создаются автоматически при запуске программы. Таким образом, все файлы проекта подразделяются на следующие типы:

  • dpr - собственно файл проекта;
  • pas - модули приложения, содержащие код на Object Pascal;
  • dfm - модули приложения, содержащие информацию об окнах приложения;
  • res - файлы со встраиваемыми ресурсами приложения (например, иконками);
  • obj - файлы, содержащие готовый к компиляции объектный код;
  • cfg, dof, dsk - служебные файлы Delphi.

Основными составными частями проекта, помимо самого файла проекта (dpr), являются модули pas и dfm. При этом для каждого модуля окна (dfm) имеется собственный программный модуль (pas).

Чтобы лучше во всем этом разобраться, попробуем создать собственный проект в Delphi. Для этого достаточно запустить Delphi - в том случае, если вы не изменяли настроек, новый проект создастся автоматически. Но на всякий случай, мы все-таки создадим новый проект самостоятельно, для чего следует из меню File зайти в группу New и выбрать в ней пункт Application.

ВНИМАНИЕ
Чтобы постоянно не повторяться, в дальнейшем подобные последовательности действий мы будем обозначать следующим образом: File > New > Application.

В результате мы получим новый проект, полностью готовый к дальнейшему использованию (см. рис. 2.1). Более того, его уже на этом этапе можно выполнить! Для этого достаточно нажать на кнопку Run, находящуюся на панели инструментов отладки, или же выбрать пункт Run из одноименного меню (Run > Run), но лучше всего нажать на клавишу F9: для быстрой разработки приложений в среде Delphi знание хотя бы основных сочетаний "горячих клавиш" просто необходимо.

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


Рис. 2.4. Самое первое приложение в Дельфи

Теперь немного модернизируем свое приложение, заодно изучив еще одно важное окно среды Delphi - Object Inspector. Для этого вернитесь в рабочую среду Delphi, закрыв запущенное приложение, и щелкните по окну Form1, чтобы оно стало актив-ным. Это окно, как и любые другие окна, относящиеся непосредственно к разрабаты-ваемому приложению, называют формой. Теперь обратите внимание на окно инспек-тора объекта (рис. 2.5), по умолчанию оно расположено по левому краю экрана.


Рис. 2.5. Окно инспектора объектов

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

ПРИМЕЧАНИЕ
Все свойства объектов в Delphi, доступные для изменения, делятся на run-time (времени выполнения) и на design-time (времени разработки). При этом первые можно изменять только во время работы программы, а вторые доступны уже во время визуального редактирования.

Попробуем заменить значение одного из свойств. Наиболее безопасным будет изменение такого свойства, как Caption - оно отвечает за текст, находящийся в заголовке окна. Для изменения значения этого свойства, щелкните по строке с ним и вместо "Form1" введите какой-либо собственный текст, например, "Мое первое приложение в Delphi". В данном случае вы сразу же увидите результат своей работы: заголовок окна формы изменится на новый.

Некоторые свойства меняются не путем непосредственного ввода значений, а путем выбора одного из заранее предусмотренных. В простейшем случае это может быть выбор ложь-истина (False или True), включающим или отключающим ту или иную опцию. Иногда списки бывают гораздо более объемными. Например, для выбора цвета предлагается множество цветов, включая системные. Например, свойство Color имеет в нашем случае значение clBtnFace, что означает цвет кнопки, установленный в настройках Windows. Мы можем изменить его на любой другой цвет, как системный (например, clCaptionText - цвет текста заголовка окна), так и на явный, например, clWhite (белый).

Можно заметить, что некоторые из свойств отмечены значком "+". Это означает, что такое свойство является составным, и если щелкнуть по значку, то раскроются строки, содержащие отдельные параметры. Например, можно раскрыть таким образом свойство BorderIcons и поменять значение параметра biMinimize с True на False. Тем самым мы изменим значение свойства, отвечающего за системные элементы управления окна таким образом, что функция разворачивания окна на весь экран будет недоступной.

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

Ну а пока что сведем воедино все измененные нами свойства формы Form1:

Caption: Мое первое приложение в Delphi Color: clWhite BorderIcons:

Последнее свойство - составное и такое его значение получается в результате установки таких его составляющих, как biSystemMenu и biMinimize в True, а biMaximize и biHelp - в False.

Часть из сделанных изменений - цвет окна и его заголовок - видна сразу же, в рабочей среде Delphi, т.е. на этапе разработки. А вот изменения в системных кнопках, хотя и могут быть сделаны на данном этапе, визуально себя не проявляют. Поэтому, чтобы увидеть сразу все произошедшие изменения, запустим приложение на выполнение, нажав клавишу F9, и вы увидите, что не только цвет и заголовок окна изменились, но и кнопка "развернуть" стала неактивной (рис. 2.6).


Рис. 2.6. Первое приложение после небольшой доработки

Таким образом, мы ознакомились с Object Inspector - одним из наиболее важных окон рабочей среды Delphi. Ну а чтобы завершить тему введения в проекты, попробуем сохранить наш проект на диске. Пусть это будет папка Project1, а сам проект мы назовем first. Для этого откройте диалог сохранения проекта (File Save project as) и выберите в нем нужную папку.

СОВЕТ
По умолчанию Delphi предлагает складывать все проекты в недра своей собственно директории в Program Files. Но было бы гораздо лучше, если бы вы создали папку в другом, легко доступном месте, и назвали ее понятным для себя названием. Например, это может быть папка Work на диске C:.

А теперь внимание! Если вы сохраняете проект в первый раз, то Delphi предложит вам сначала сохранить не файл проекта, а все несохраненные рабочие файлы. В данном случае это будет программный файл формы. По умолчанию Delphi предложит назвать его unit1.pas, но лучше сразу взять за правило давать осмысленные имена все рабочим файлам. В частности, раз это окно - главное (и единственное) в нашем приложении, то назовем его файл main.pas. Таким образом будут сохранено сразу 2 файла - программный pas и файл формы dfm.

ВНИМАНИЕ
Имена любых файлов проекта должны состоять только из латинских букв и цифр, при этом начинаться должны с буквы. Также в них недопустимы пробелы и любые специсмволы, кроме знака подчеркивания.

Только после сохранения всех составных частей, будет предложено сохранить собственно файл проекта. Назовем его "first". После сохранения можно, наконец-то скомпилировать исполняемый файл, нажав Ctrl+F9 (или Project Make), закрыть Delphi и посмотреть, что мы имеем в папке Project1. А в ней, как и было обещано, будет файл main.pas - программный код для формы, main.dfm - описание формы, first.dpr - сам проект, first.res - файл ресурсов проекта, main.dcu - подготовленный к компиляции модуль, и, разумеется, first.exe - исполняемый файл готового приложения. Так же вы обнаружите в нем все служебные файлы Delphi, в которых хранится дополнительная информация о проекте и настройках рабочей среды для него - файлы first.cfg, first.dof и first.dsk.

Чтобы теперь вернуться к работе над этим проектом, достаточно дважды щелкнуть по файлу first.dpr, в результате будет загружена и Delphi IDE, и этот проект в нее.

Типы проектов и депозитарий

Только что мы рассмотрели создание наиболее распространенного типа проекта - приложения Windows со стандартным графическим интерфейсом. Но на самом деле, возможности Delphi этим не ограничены, вы можете создавать приложения самого разнообразного характера, включая консольные (для текстового режима Windows), динамически подключаемые библиотеки (DLL), сервисы для Windows NT/2000/XP, межплатформенные приложения CLX (Delphi 6,7) или приложения для платформы Microsoft .NET (Delphi 8, 2005). Чтобы создать приложение определенного типа, следует из подменю File New выбрать пункт Other. Таким образом, откроется окно, позволяющее выбрать тип нового приложения или добавить какой-либо специфический модуль к существующему проекту (рис. 2.7).


Рис. 2.7. Выбор нового приложения или модуля в Delphi 7

Выбор вариантов тут весьма обширен, причем, помимо типовых модулей и классов приложений, присутствуют различные мастера, позволяющие упростить процесс создания того или иного модуля (Wizards), а так же специализированные стандартные формы вроде диалоговых окон или окна "О программе". Рассмотрим некоторые из них подробнее, для чего пройдемся по отдельным закладкам окна New Items.

Начнем с закладки New. На ней представлены наиболее часто востребованные, по мнению разработчиков, варианты. И действительно, тут можно найти стандартное графическое Windows-приложение (Application), форму (Form), программный модуль (Unit), текстовое приложение командной строки (Console Application), и другие варианты, как-то Data Module (полезен для разработки баз данных), DLL Wizard, Component и т.д.

На закладках Forms и Dialogs моно найти ряд стандартных диалоговых окон и даже мастер по разработке диалогового окна.

Закладка Projects дает возможность начать проект того или иного типа, или даже воспользоваться мастером для создания многооконного приложения.

Чтобы создать элемент управления ActiveX или приложение для COM+, следует обратиться к шаблонам на закладке ActiveX. Ну а прочие закладки, в том числе IntraWeb, WebSnap и т.д., позволяют создавать специализированные приложения соответствующего типа или модули к ним. Их количество и названия зависят от версии Delphi и варианта поставки.

Но на самом деле, данное окно, по большому счету, подобно палитре компонент, с тем лишь исключением, что если палитра компонент являет собой представление VCL, то окно New Items - во многом является отображением депозитария (Object Repository). В депозитарии хранятся заготовки форм и иных модулей, которые вы можете многократно использовать в своих проектах. При этом для того, чтобы поместить форму в депозитарий, достаточно воспользоваться ее контекстным меню и выбрать в нем пункт Add to Repository.

Прочие средства IDE

На текущий момент мы уже рассмотрели такие составные части, предоставляемые интегрированной средой разработки Delphi, как главное окно вместе с его меню, окном выбора модулей и палитрой компонентов, и инспектора объектов. Теперь обратимся к такой важной части, как окно редактора кода. Следует отметить, что до появления графических средств разработки, подобных Delphi, еще во времена MS-DOS и ранних версий Windows, IDE для программирования как раз и состояли из редактора кода да самого компилятора. Таким образом, редактор кода - это наиболее характерный и устоявшийся элемент в любой среде разработки приложений.

Применительно ко всем современным версиям Delphi, редактор кода имеет все стандартные возможности редактирования текста (вроде работы с буфером обмена), а так же ряд особенностей, характерных для редакторов кода, а именно:

  1. Редактор всегда работает с моноширинным шрифтом (т.е. все буквы имеют одинаковую ширину). Это необходимо, поскольку в противном случае было бы тяжело ориентироваться в коде программы;
  2. Моноширинный режим позволяет использовать такой метод, как колоночную разбивку. Иначе говоря, копировать и перемещать можно не только отдельные слова или строки, но и вырезать, копировать и вставлять прямоугольные фрагменты текста;
  3. Редактор постоянно отображает позицию курсора, т.е. в какой строке и колонке находится точка ввода;
  4. Отсутствие автоматического переноса строк. Поскольку в программировании каждый символ, включая обрыв строки, что-то значит, то чтобы программисты не гадали, где в коде конец строки, а где автоматический перенос, такого режима правки нет в принципе. К тому же это мешало бы ориентироваться в номерах строк;
  5. Подсветка синтаксиса выделяет ключевые слова и прочие специфические языковые конструкции;
  6. При перемещении по тексту стрелкой вправо по окончании текста в строке, курсор не переносится на сроку вниз, а продолжает перемещаться дальше;
  7. Вы можете устанавливать закладки, т.е. помечать место в тексте при помощи сочетания горячих клавиш и быстро перемещаться между ними;
  8. Также предусмотрены такие функции, как автоподстановка кода по ключевым фразам, автозавершение кода и т.д.

При всем этом следует отметить, что практически все функции редактора, включая правила подсветки, сочетания горячих клавиш, поведение курсора, автоподстановка и т.д., гибко настраиваются. Для этого следует открыть окно свойств редактора (Tools Editor options) и настроить параметры на свое усмотрение. Впрочем, если у вас еще не сложились какие-то предпочтения в работе с подобными редакторами, то можно этого и не делать - предлагаемые изначально настройки вполне удобны.

Что касается внешнего вида окна редактора, то в нем, при стандартных параметрах IDE, помимо области редактора кода имеется еще и проводник кода, упрощающего процесс навигации по файлу (рис. 2.8).


Рис. 2.8. Окно редактора кода с проводником и загруженным файлом новой формы

Обратите внимание на то, что весь программный код файла main.pas, показанный в этом окне, был создан автоматически, равно как и код для файла проекта - first.dpr. Иначе говоря, всю работу по созданию базовых блоков приложения интегрированная среда Delphi делает за вас.

Завершая тему окна редактора, отметим, что для того, чтобы загрузить в него какой-либо произвольный файл, следует воспользоваться главным меню (File Open). При открытии проекта файлы открытых форм загружаются в него автоматически, а чтобы загрузить в него иные файл проекта, используйте кнопку View Unit (сочетание горячих клавиш - Ctrl+F12) на инструментальной панели View. Если же требуется загрузить как исходный код, так и саму форму, то воспользуйтесь находящейся по соседству кнопкой View Form (Shift+F12).

Ну и последнее не рассмотренное нами окно - Object TreeView, или окно дерева объектов, служит для просмотра иерархии элементов управления (кнопок, переключателей и т.п.) относительно формы. Т.е., если проводник кода упрощает процесс поиска того или иного компонента в исходном коде программы, то дерево объектов поможет быстрее сориентироваться в элементах, находящихся на форме.

Создание приложения командной строки

Итак, мы уже ознакомились со всеми основными функциями IDE Delphi, и даже создали простейшее приложение для Windows. Однако целью данной части книги является все-таки изучения основы основ - языка Object Pascal. Поэтому для того, чтобы не отвлекаться по ходу его изучения на второстепенные (по отношению к самим языковым конструкциям) детали, рассмотрим вариант создания консольного приложения, т.е. фактически, программы для DOS. Не стоит думать, что это будет шагом назад, или что это давно морально устарело. На самом деле, абсолютно все правила языка действуют совершенно одинаково для любых программ, будь они под DOS, Windows, .NET, или Linux. Вместе с тем, отсутствие необходимости в параллельном изучении специфических для конкретной платформы особенностей (а уж тем более - в параллельном изучении такой обширной библиотеки, как VCL!) существенно упростит нашу задачу. Более того, консольные приложения в типичном случае могут состоять всего лишь из одного единственного файла, что так же упрощает понимание предмета изучения, коим на настоящий момент является сам язык программирования. Ну а после того, как будет выучен язык, применить его для создания полноценных Windows-приложений не составит труда, да и изучение VCL станет легче ввиду того, что будет ясно, что, как и почему в ней устроено.

После такого небольшого отступления, приступим к созданию первого консольного приложения в среде Delphi. Для этого откройте окно New Items (File New Other) и на закладке New дважды щелкните по значку Console Application. В результате откроется окно редактора с загруженным в него проектом (листинг 2.1).

Листинг 2.1. Заготовка приложения командной строки

Program Project1; {$APPTYPE CONSOLE} uses SysUtils; begin { TODO -oUser -cConsole Main: Insert code here } end.

Первой строкой идет название программы, в данном случае это Project1, затем Delphi вставило для себя указание, что это - приложение для командной строки, после чего следует ключевое слово "uses" и перечисление необходимых дополнительных файлов (sysutils), ну и после этого, со слова begin начинается собственно тело программы. Завершается любая программа в Pascal ключевым словом end с точкой. Между ключевыми словами begin и end, в фигурных скобках, вставлен автоматический комментарий, не влияющий на выполнение программы, так что при желании можно его удалить.

А теперь самостоятельно напишем первую программу в Delphi! По традиции, она у нас будет выводить фразу "Hello, World!". Для этого на том месте, где находился комментарий, напишем одну строчку кода:

Write(Hello, World!);

Все! Теперь можно сохранить и скомпилировать нашу программу. Для этого щелкните по кнопке Save или Save All на стандартной панели инструментов, в качестве пути к файлу укажите какой-либо каталог на вашем жестком диске (например, создайте папку HelloWorld на диске C:), а саму программу можно назвать hello. Таким образом, все наше приложение будет сохранено, а исходный код примет вид, показанный в листинге 2.2.

Листинг 2.2. Программа hello

Program hello; {$APPTYPE CONSOLE} uses SysUtils; begin write(Hello, World!); end.

Обратите внимание, что название изменилось автоматически. Теперь остается получить исполняемый (exe) файл, для чего скомпилируем программу, нажав Ctrl+F9. Теперь запустим программу. Поскольку она у нас рассчитана на режим командной строки, то для начала откроем командную строку (Пуск > Все программы > Стандартные > Командная строка в Windows XP, или Пуск > Программы > Стандартные > Сеанс MS-DOS в Windows 98). В командной строке вызовем нашу программу, не забыв указать полный путь к ней. Например, если вы сохранили проект в C:\HelloWorld, а саму программу назвали Hello, то и путь укажите соответствующий, т.е.:

C:\HelloWorld\hello.exe

Запустив программу (т.е. введя в командной строке путь и нажав Enter), вы сразу же увидите результат ее выполнения - она выведет фразу "Hello, World!", и завершится. Собственно говоря, именно по этой причине мы сначала открыли командную строку, а лишь затем запустили программу, поскольку непосредственный ее запуск (через Проводник Windows, или прямо из Delphi - по F9), привел бы к тому, что на экране просто мелькнул бы автоматически запущенный сеанс MS-DOS и сразу закрылся бы. Это объясняется тем, что программа завершает свою работу сразу после того, как будет достигнут ее конец, обозначенный как "end.", а это в нашем случае произойдет моментально после вывода текста. Но мы можем изменить такое ее поведение, добавив еще одну сроку кода непосредственно после "write(Hello, World!);", которая будет дожидаться момента, пока пользователь не нажмет клавишу Enter. Выглядеть она будет так:

Теперь можно запустить наше приложение прямо из среды Delphi, нажав F9. В результате можно будет наблюдать надпись "Hello, World!" на фоне черного окна автоматически запущенного сеанса консоли командной строки до тех пор, пока вы не нажмете Enter.

Исходный код программы вы найдете в папке Demo\Part1\HelloWorld на прилагаемом компакт-диске (или в архиве

СРЕДА DELPHI 7

Тема 1. Интерфейс интегрированной среды разработки

Прикладные

программы,

приложения,

создаются

интегрированной

разработки(IDE –

Environment).

Пользовательский

интерфейс

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

различные

элементы

управления. С

интегрированной

разработчику

проектировать интерфейсную

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

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

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

Интегрированная

разработкиDelphi 7

представляет

многооконную

интегрированной

разработки

(пользовательский интерфейс) может различаться в зависимости от настроек. Интерфейс Delphi 7 первоначально включает шесть окон:

Главное окно (Delphi 7 – Project1);

- окно Обозревателя дерева объектов (Object TreeView );

- окно Инспектора объектов (Object Inspector );

- окно Формы, или Конструктора формы (Form1 );

- окно Редактора кода (Unit1.pas )

- окно Проводника кода (Exploring Unit1.pas ).

Последние два окна находятся позади

окна,Формыпричем окно

Проводника кода пристыковано слева к окну Редактора кода, поэтому оба этих

окна имеют общий заголовок Unit1.pas .

На экране кроме указанных окон могут присутствовать и другие окна,

отображаемые при вызове соответствующих средств, например, окно Редактора

изображений (Image Editor ). Окна Delphi можно

перемещать,

изменять их

размеры и убирать с экрана(кроме главного окна), а также

состыковывать

между собой.

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

При сворачивании главного окна сворачивается весь интерфейсDelphi и, соответственно, все открытые окна; при закрытии главного окна работа с Delphi прекращается. Главное окно Delphi включает:

Главное меню;

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

- палитру компонентов.

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

Вызвать многие команды главного меню можно также с помощью

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

С помощью контекстного меню можно также управлять видимостью Палитры компонентов (Component Palette ).

Более широкие возможности по настройке панелей инструментов и главного меню предоставляет диалоговое окноCustomize (Индивидуальная настройка), вызываемое одноименной командой контекстного меню панелей инструментов. С его помощью можно скрыть или отобразить требуемую панель

инструментов, изменить состав

кнопок на, нейа также выбрать

отображения всплывающих подсказок для кнопок.

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

главного

содержит

множество

компонентов, размещаемых

создаваемых

Компоненты

являются

своего рода строительными

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

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

Standard – стандартная;

Additional – дополнительная;

Win32 – 32-разрядного интерфейса Windows;

System – доступа к системным функциям;

Data Access – работы с информацией из баз данных;

Data Controls – создания элементов управления данными;

DbExpress – доступа к SQL-серверам;

DataSnap – создания многоуровневых приложений баз данных;

BDE – доступа к данным с помощью BDE;

ADO – связи с базами данных с использованием объектов данных ActiveX;

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

WebServices – создания клиентских приложений, использующих Web-сервис

с помощью технологии SOAP;

InternetExpress – создания приложений InternetExpress, которые являются одновременно Web-сервером и клиентом распределенной базы данных;

Internet – создания приложений Web-сервера для сети Интернет;

WebSnap – создания приложений Web-серверов;

Decision Cube – многомерного анализа;

Dialogs – создания стандартных диалоговых окон;

Win 3.1 – интерфейса Windows 3.x;

ActiveX – компонентов ActiveX;

RAVE – генерации отчетов в приложении;

Indy Clients – платформо-независимые компоненты Интернета для клиента;

Indy Servers – платформо-независимые компоненты Интернета для сервера;

Indy Intercepts – платформо-независимые компоненты Интернета для обработки прерываний при кодировании/ раскодировании и преобразовании передаваемой информации;

Indy I/O Handlers – платформо-независимые компоненты Интернета для управления вводом / выводом;

Интернета (обработки, кодирования и декодирования данных);

СОМ+ – управления одноименными объектами;

InterBase Admin – управления доступом к одноименной базе данных;

IW Standard – стандартная для работы в Интернете;

IW Data – создания элементов управления при работе с базами данных в Интернете;

IW Client Side – для обеспечения работы в Интернете со стороны клиента;

IW Control – управления работой в Интернете;

Servers – оболочки VCL для общих серверовCOM (Microsoft Office 2000 или 97).

Палитру компонентов можно настраивать с помощью диалогового окна Palette Properties (Свойства Палитры). Это окно вызывается командойProperties (Свойства) контекстного меню Палитры компонентов или командойComponent \ Configure Palette (Компонент \ Настройка Палитры) главного меню. Окно позволяет выполнять такие операции, как удаление, добавление отдельных компонентов и перемещение их на другое, а местотакже добавление, удаление или перемещение страниц компонентов.

В списке Pages диалогового окнаPalette Properties содержатся названия страниц, в спискеComponents – названия компонентов выбранной страницы. С

Добавить (Add ), удалить (Delete ) или переименовать (Rename ) страницу;

- переставить страницу или компонент на позицию выше(Move Up ) или ниже

(Move Down);

- скрыть компонент (Hide ).

Окно Формы (илиКонструктора формы ) первоначально находится в

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

формы, в процессе которого в форму из Палитры компонентов помещаются

необходимые

компоненты. При

проектирование

заключается

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

работу в среде простого графического редактора. Сам Конструктор формы во

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

дело непосредственно с формой, поэтому часто окно Конструктора формы

также называют окном Формы или просто "формой".

Редактора

кода (Unit1.pas)

программирования

находится

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

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

текстовые

приложения, например,

редактируемый файл находится в окне Редактора кода на отдельной странице, доступ к которой осуществляется щелчком на соответствующем. значке Первоначально в окне Редактора кода на страницеCode содержится одна вкладкаUnit1 исходного кода модуля формыForm1 разрабатываемого приложения.

В Delphi 7 Редактор кода поддерживает также просмотр и редактирование других элементов приложения. Для этого используются страницы:

Diagram – отображение и настройка взаимосвязей между визуальными и невизуальными компонентами;

HTML Script – просмотр документа HTML и текста JavaScript, сгенерированных с помощью компонента типа TAdapterPageProducer;

HTML Result – просмотр документа HTML, сгенерированного на основе HTML-шаблона;

Preview – просмотр документа HTML в окне обозревателя;

XML Tree – отображение документа XML или модуля Web-страницы в окне обозревателя;

XSL Tree – отображение документа XSL или модуля Web-страницы.

В окне Редактора кода всегда присутствует страница Code , а остальные страницы требуют соответствующей настройки.

Окно Проводника кода (Exploring Unit1.pas ) пристыковано слева к окну Редактора кода. В нем в виде дерева отображаются все объекты модуля формы,

например переменные и процедуры. В окне Проводника

кода удобно

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

что особенно важно для больших модулей. Окно Проводника кода открывается

командой Code Explorer (Проводник кода) менюView (Просмотр).

настройки

Проводника

кода служит Explorer окно

(Параметры

проводника), открываемое

командой Properties (Свойства)

контекстного меню Проводника кода. С помощью этого окна можно, например,

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

categories (Категории просмотра). Чтобы окно Проводника кода по умолчанию

отсутствовало, нужно

сбросить

флажок Automatically show

(Автоматически отображать Проводник).

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

Окно Инспектора объектов находится под окном Обозревателя дерева объектов в левой части экрана и отображает свойства и события объектов для текущей формыForm1 . Его можно открыть командойView \ Object Inspector (Просмотр \ Инспектор объектов).

Окно Инспектора объектов имеет две страницы: Properties (Свойства) иEvents (События).

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

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

В конкретный момент времени Инспектор объектов отображает свойства

и события текущего(выбранного) компонента, имя и тип которого отображаются в списке под заголовком окна Инспектора объектов. Компонент, расположенный в форме, можно выбрать щелчком мыши на нем или выбором в списке Инспектора объектов. У каждого компонента есть набор свойств и событий, определяющих его особенности.

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

командой Arrange \ by Category (Расположить \ По категориям) контекстного меню Инспектора объектов. КомандойArrange \ by Name (Расположить \ По имени) восстанавливается расположение по алфавиту.

По умолчанию Инспектор объектов отображает все свойства и события объектов. Можно отключить / включить отображение некоторой категории, убрав / установив отметку в соответствующем пункте подменю командыView контекстного меню.

Для настройки вида Инспектора объектов служит окноObject Inspector Properties (Свойства Инспектора объектов), открываемое командойProperties контекстного меню Инспектора объектов. С его помощью можно выбрать, например, цвет для отображения имен (Name ) и значений (Value ) свойств.

Delphi поддерживает технологию Dock-окон , которые могут стыковаться (соединяться) друг с другом с помощью мыши. Такими окнами являются инструментальные (недиалоговые) окна интегрированной среды разработки, в

том числе окна Инспектора объектов и Проводника кода. Состыкованные окна

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

Для соединения двух окон следует с помощью мыши поместить одно из

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

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

Разделение окон

выполняется

перемещением

пристыкованного

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

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

стыковке / отстыковке окно изменяет свое название. Так, окно Проводника

кода, состыкованное с окном Редактора кода, имеет общее с ним название,

например, Unit1.pas , в то время как при отстыковке название изменяется на

Unit1.pas.

Окна Инспектора объектов

и Обозревателя

объектов при стыковке объединяют свои назва(н азвания всех окон

указываются через запятую).

Можно запретить стыковку окна, убрав отметку Dockable (Стыкуемое) в

контекстном меню окна. По умолчанию эта отметка включена и окно является

стыкуемым.

Для окон Инспектора объектов и Обозревателя дерева объектов можно

установить режим Stay on Тор (Расположить наверху), расположив их поверх

окон. Это

выполняется

включением

одноименной

контекстном меню. Скрытое окно вызывается на экран командой менюView . Например, окно Проводника кода выводится на экран командойView \ Code Explorer .

Тема 2. Характеристика проекта

– код проекта (dpr );

– описания форм (dfm – для Windows,xfm – кроссплатформенный вариант);

модули и модули форм (pas );

параметры проекта (dof – для Windows,kof – для Linux);

параметры среды (cfg );

описание ресурсов (res ).

Взаимосвязи между отдельными частями (файлами) проекта показаны на рис. 1.1.

Рис. 1.1. Связь между файлами проекта Кроме приведенных файлов, автоматически могут создаваться и другие

файлы, например, резервные копии файлов: ~ dp – для файлов с расширением dpr;~ pa – для файлов с расширением pas.

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

2.2. Файл проекта

Файл проекта является центральным файлом проекта

и представляет

собой собственно программу. Для приложения, имеющего в

составе одну

форму, файл проекта имеет следующий вид:

program Project1;

uses Forms, Unit1 in "Unitl.pas" {Form1};

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.Run;

Имя проекта (программы) совпадает с именем файла проекта и указывается при сохранении этого файла на диске, п рвоначально это имя Project1. То же имя имеют файлы ресурсов и параметров,проектапри

переименовании

переименовываю

автоматически.

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

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

Директива $R подключает к проекту файл ресурсов, имя которого по умолчанию совпадает с именем файла проекта. Поэтому вместо имени файла ресурса указан символ* . Кроме этого файла разработчик может подключить к проекту и другие ресурсы, самостоятельно добавив директивы$R и указав в них соответствующие имена файлов ресурсов.

Программа проекта содержит всего три инструкции, выполняющих инициализацию приложения, создание формы Form1 и запуск приложения.

При выполнении разработчиком каких-либо операций с проектомDelphi формирует код файла проекта автоматически. Например, при добавлении новой формы в файл проекта добавляются две строки кода, относящиеся к этой фор-

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

Отображение кода файла проекта в окне Редактора кода задается командой Project \ View Source (Проект \ Просмотр источника).

2.3. Файлы формы

Для каждой формы в составе проекта автоматически создаются файл описания формы (расширение dfm ) и файл модуля формы (расширениеpas ).

описания

формы является

ресурсомDelphi

содержит

характеристики формы и ее компонентов. Разработчик обычно управляет этим

файлом через

Формы и Инспектора объектов. При конструировании

формы в файл описания автоматически вносятся соответствующие изменения.

Содержимое

описания

определяет

ЕеПри вид

необходимости можно отобразить этот файл на экране в текстовом виде, что

выполняется командой View as Text (Просмотреть как

контекстного

меню формы. При этом окно Формы пропадает с экрана, а содержимое файла описания формы открывается в окне Редактора кода и доступно для просмотра и редактирования.

Повторное открытие окна формы выполняется командойView \ Forms (Просмотр \ Формы), после чего открывается диалоговое окноView Form (Просмотр форм), в списке которого и выбирается нужная форма.

Файл модуля формы содержит описание класса формы. Для пустой формы, добавляемой к проекту по умолчанию, файл модуля формы содержит следующий код:

unit Unit1;interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;

type TForml = class (TForm) private

{ Private declarations } public

{ Public declarations } end;

var Form1: TForm1;implementation

{$R *.dfm} end.

Delphi автоматически создает файл модуля формы при добавлении новой формы. По умолчанию к проекту добавляется новая форма типаTForm , не содержащая компонентов.

В разделе interface модуля формы содержится описание класса формы, а в разделеimplementation – подключение к модулю директивой$R визуального описания соответствующей формы. При размещении в форме компонентов, а

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

Тексты файлов модулей форм отображаются и редактируются с помощью Редактора кода. Открыть файл модуля формы можно в стандартном окне открытия файла (команда File \ Open (Файл \ Открыть)) или в диалоговом окнеView Unit , открываемом командойView \ Units (Просмотр \ Модули). В окне открытия файла модуля формы можно выбрать также файл проекта. После

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

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

При компиляции модуля автоматически создается файл с расширением dcu (dpu – для Linux), который содержит откомпилированный код модуля. Этот файл можно удалить из каталога, в котором находятся все файлы проекта.

Это наш первый урок по Delphi! Все дальнейшие уроки рассчитаны на людей, знакомых с основами языка Pascal и хорошо владеющими работой на компьютере. Все уроки «заточенны» под Borland Delphi 7 (не все, в дальнейшем будет использоваться Embarcadero Rad Studio ), однако могут быть изучены и при помощи других, возможно более новых сред Delphi, т.к. принцип разработки приложений во всех версиях Delphi одинаковый. Ко многим урокам для начинающих будут прилагаться дополнительные видеоуроки.

Давайте откроем Borland Delphi 7 и изучим внешний вид интерфейса среды разработки:

В более новых версиях Delphi, палитру компонентов вы можете встретить в виде древовидного списка, который находится на правой панели.

Окно «Form1» это внешний вид вашей будущей программы, который вы можете визуально спроектировать. Проектировка интерфейса будущей программы основана на компонентах.
Компоненты — это разнообразные кнопки, окна, панели, текстовые окна, чекбоксы и т.д. Перечислить все компоненты очень сложно.
Все установленные компоненты размещены в палитре компонентов, где все они разделены в свою очередь на вкладки, такие как «Standart», «Additional», «Win32» и другие.
Слева от окна «Form1» расположено два окна: «Object TreeView» и «Object Inspector».
В окне «Object TreeView» расположен список всех компонентов размещенных на форме в программе. Выделив какой-либо из них, в окне «Object Inspector» мы получаем возможность изменять любые параметры выделенного в окне «Object TreeView» или в окне «Form1» компонента. Там мы можем изменить такие параметры, как заголовок формы программы, или надпись на кнопке и т.д.
Теперь давайте поговорим о самих компонентах. Компоненты делятся на 2 раздела:

  • Визуальные
  • Невизуальные

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

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

Компонент TButton (Кнопка) располагается во вкладке «Standart». Этот компонент играет роль самой обыкновенной кнопки, без которых не обойдется ни одна программа.
Для ее создания нужно щелкнуть левой кнопкой мыши в палитре компонентов по значку и щелкнуть по месту на форме, в которое вы хотите поместить компонент. Выделив компонент одним кликом левой кнопки мыши мы можем изменить его размер.
Теперь давайте его выделим одним кликом левой кнопки мыши и в окне
«Object Inspector» отыщим параметр, который изменит надпись на кнопке. Этот параметр называется «Caption». Справа от имени параметра мы видим небольшое текстовое поле, в котором написано «Button1». Это и есть надпись на нашей кнопке. Теперь давайте изменим надпись этой кнопки на «Это моя первая кнопка в DELPHI!».
Вот что у меня получилось:

Теперь давайте рассмотрим другие параметры компонента TButton:

Параметр Описание
Name Имя компонента. Используется в программе для доступа к компоненту и его свойствам
Caption Текст на кнопке
Enabled Признак доступности кнопки. Кнопка доступна, если значение свойства равно True, и недоступна, если значение свойства равно False
Left Расстояние от левой границы кнопки до левой границы формы
Top Расстояние от верхней границы кнопки до верхней границы формы
Height Высота кнопки
Width Ширина кнопки
Visible Признак видимости кнопки. Кнопка будет видима призапуске программы, если значение параметра равно True, и невидима, если False

Теперь, разобрав свойства компонента TButton, перейдем к компоненту TCheckBox во вкладке Standart. На форме он выглядит так:

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

Теперь рассмотрим еще один компонент TMemo . Он тоже расположен на вкладке «Standart». Выглядит так:

Это многострочное текстовое поле.
Рассмотрим его параметры:

Параметр Описание
Lines Это и есть многострочное текстовое содержимое этого компонента. Для его редактирования сделайте двойной клик левой кнопкой мыши по полю редактирования параметра. В открывшемся окне введите содержимое и нажмите OK
ScrollBars Это уже более сложный параметр. Он означает наличие полос прокрутки в тексте.
ssNone- нет полос
ssBoth- вертикальная и горизонтальная полосы
ssHorizontal- только горизонтальная полоса
ssVertical- только вертикальная полоса
Font Это шрифт текста. Этот параметр может разворачиваться для редактирования отдельных параметров (размер, цвет). Но это можно редактировать в более удобном окне, сделайте двойной клик левой кнопкой мыши по полю редактирования параметра и откроется окно редактирования шрифта. Там будет все понятно
Text Это тоже параметр для ввода текстового содержимиго, но уже в одну строку
ReadOnly Если стоит true, значит во время работы программы текст memo нельзя изменить, если false, то можно.

Ну и еще никак нельзя стороной обойти компонент TForm. Это и есть то самое окно, которое содержит в себе другие компоненты. Для редактирования свойств TForm, щелкните левой кнопкой мыши по пустому месту формы. Привожу несколько параметров TForm.

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

Думаю, про свойства компонентов я рассказал вам достаточно, теперь поговорим о их событиях.
Например: Вы нажимаете на кнопку, а она изменяет свой параметр Caption, или Left, или Visible.
Для этого в окне «Object Inspector» есть вкладка «Events». В этой вкладке мы видим список событий, которые могут происходить с компонентом:

Событие Когда происходит
OnClick При щелчке кнопкой мыши
OnDblClick При двойном щелчке кнопкой мыши
OnMouseDown При удерживании кнопки мыши
OnMouseUp При отпускании кнопки мыши
OnMouseMove При наведении курсора
OnKeyPress При нажатии клавиши клавиатуры
OnKeyDown При нажатии клавиши клавиатуры. События OnKeyDown и OnKeyPress - это чередующиеся, повторяющиеся события, которые происходят до тех пор, пока не будет отпущена удерживаемая клавиша (в этот момент происходит событие OnKeyUp)
OnKeyUp При отпускании нажатой клавиши клавиатуры
OnCreate При создании объекта (формы, элемента управления). Процедура обработки этого события обычно используется для инициализации переменных, выполнения подготовительных действий
OnPaint При появлении окна на экране в начале работы программы, после появления части окна, которая, например, была закрыта другим окном, и в других случаях
OnEnter При получении элементом управления фокуса
OnExit При потере элементом управления фокуса

Рассмотрев самые распространенные события, перейдем к их созданию.
Для того чтобы создать событие для компонента, нужно сделать двойной клик левой кнопкой мыши по текстовому полю, которое находится справа от названия события.
После этого откроется окно, в котором надо будет ввести программный код того события. Например чтобы при нажатии компонент Button1 изменял свою надпись на «Нажатая кнопка» при обработки события OnClick.

Именно написанием программного кода для события мы и займемся на следующем уроке. Не забывайте подписаться на E-Mail рассылку всех новых и самых интересных материалов сайта.

Delphi 7

Delphi - язык программирования, который используется в одноимённой среде разработки. Название используется начиная с 7 версии среды разработки, ранее это был Object Pascal, разработанный фирмой Borland и изначально реализованный в её пакете Borland Delphi, от которого и получил в 2003 году своё нынешнее название. Object Pascal по сути является наследником языка Pascal с объектно-ориентированными расширениями.

По поводу «правильного» произношения названия языка было сломано немало копий не только в России. Интересно, что нет единства даже среди англоязычных стран. В частности, согласно данному источнику, в Великобритании доминирует произношение «дел-фи, а в США - «дел-фай»

Изначально среда разработки Delphi была предназначена исключительно для разработки приложений Windows, затем был реализован вариант для платформ Linyx, однако после выпуска в 2002 году Kylix 3 его разработка была прекращена, и вскоре было объявлено о поддержке Microsoft.Net, которая, в свою очередь, была прекращена с выходом Delphi 2007.

На сегодняшний день, наряду с поддержкой разработки 32 и 64-разрядных программ для Windows, реализована возможность создавать приложения для Apple Mac OS X(начиная с Embarcadero Delphi XE2), iOS(включая симулятор, начиная с XE4 посредством собственного компилятора), а также, в Delphi XE5, для Google Android (непосредственно исполняемые на ARM-процессоре).

Независимая, сторонняя реализация среды разработки проектом Lazarus (Free Pascal, компиляция в режиме совместимости с Delphi) позволяет использовать его для создания приложений на Delphi для таких платформ, как Linux, Mac OS X.

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

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

Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую "быструю разработку", среди которых можно выделить Borland Delphi и Microsoft Visual Basic. В основе систем быстрой разработки (RAD-систем, Rapid Application Development -- среда быстрой разработки приложений) лежит технология визуального проектирования и событийного программирования, суть которой заключается в том, что среда разработки берет на себя большую часть рутинной работы, оставляя программисту работу по конструированию диалоговых окон и функций обработки событий.

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

Язык Delphi -- строго типизированный объектно-ориентированный язык, в основе которого лежит хорошо знакомый программистам Object Pascal. Delphi - близкий родственник обычного языка Pascal, что обеспечило ему широкую популярность. В настоящее время Delphi стал основным инструментом разработки программного обеспечения во всем мире. Существует и версия Builder, в которой можно совместно использовать процедуры, написанные на языках C и Pascal.

Система Delphi постоянно развивается. По состоянию на 2003 г. наиболее стабильной и отработанной являлась версия 6.0. Версия 7.0 заявлена разработчиком как переходная к 8.0 и не рекомендуется для широкого использования. В то же время почти все рассматриваемые далее примеры будут работать практически в любой версии Delphi, начиная с 3.0. Содержательные различия между версиями 3.0 … 7.0 незначительны, и для самостоятельной работы можно использовать литературу, описывающую любую из этих версий.

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

Borland Delphi 7 Studio может работать в среде операционных систем от Windows 98 до Windows XP и выше. Особых требований, по современным меркам, к ресурсам компьютера пакет не предъявляет: процессор должен быть типа Pentium или Celeron с тактовой частотой не ниже 166 МГц (рекомендуется Pentium II 400 МГц), оперативной памяти - 128 Мбайт (рекомендуется 256 Мбайт), достаточное количество свободного дискового пространства (для полной установки версии Enterprise необходимо приблизительно 475 Мбайт).

Официально бесплатной версией Delphi является Lazarus, примерно соответствующий по своим возможностям Delphi 5.0.

Русской версии Delphi не существует. Все так называемые «русские версии» - продукция криворуких пиратов, работающая нестабильно. Всегда устанавливайте только исходную английскую версию.