Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы по дисциплине.doc
Скачиваний:
15
Добавлен:
31.05.2015
Размер:
1.02 Mб
Скачать

3. Выход из Delphi

Для того чтобы выйти из Delphi, даже если имеется множество зависимых открытых окон, надо просто выбрать "Выход" (Exit) из меню "Файл" (File) главного окна Delphi (оно находится вверху экрана вместе с кнопками быстрого доступа и Палитрой компонентов).

При попытке выйти из Delphi после каких-либо изменений в проекте всегда задаётся вопрос, надо ли сохранить проект. На этот вопрос нельзя отвечать механически, не думая. Нужно быть внимательным. Это последняя возможность сохранить проект, который был модифицирован. Можно специально не хотеть сохранить проект. Это означает, что пользователь хочет вернуться к последней сохранённой на диске версии.

4. Контрольные вопросы

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

1. Что такое IDE?

2. Как запустить Delphi?

3. Что такое кнопка быстрого доступа?

4. Что такое Линейка инструментов?

5. Что такое Палитра компонентов?

6. Как выбрать нужную страницу Палитры компонентов?

7. Как можно настроить Линейку инструментов?

8. Что такое Дизайнер форм?

9. Что такое свойство?

10. Чем отличается Дизайнер форм от формы?

11. Что такое Инспектор объекта?

12. Как получить доступ к свойствам, расположенным на странице "События" (Events)?

13. Для чего нужно окно Редактора кода?

14. Как открыть окно Менеджера проектов?

15. Сколько одновременно открытых проектов может иметь Delphi?

5. Создание первого проекта

Теперь вы готовы создать первый программный проект в Delphi. Простейшая программа BLANK с пустой формой (см. рис. 7) – обычное приложение Windows, с основным окном, способным изменять размеры, перемещаться по экрану, минимизироваться, максимизироваться и т. д.

Вы также увидите, насколько просто изменять некоторые свойства визуального внешнего вида незаполненного окна, например, цвета или заголовка, отображаемого в строке заголовка, – всё без написания какого-либо кода вообще!

Рис. 7. Окно программы BLANK

Другими словами, основное окно программы BLANKуже имеет все фундаментальные возможности окна, которые вы ожидаете от любой хорошей программы Windows, без написания хотя бы одной строки исходного текста. Создание той же самой программы в ранние дни программирования Windows требовало не менее чем от нескольких сотен до тысячи строк кода Си. Даже теперь очень немногие среды разработки могут обеспечивать такие функциональные возможности, как Delphi!

Программа BLANK

Самое первое, что вы должны сделать, когда начинаете новый программный проект, – это создать новый проект Delphi по команде Файл/ Создать/ Приложение. Вы увидите некоторую активизацию диска и дисплея, и на экране появится незаполненная форма Form1 внутри окна Дизайнера форм. В окне Редактора кода можно увидеть сгенерированный модульunit1исходного текста Object Pascal, который прилагается к форме.

Сохранение нового проекта

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

Чтобы сохранить проект в личной директории, выберите "Сохранить все" из меню "Файл". В этот момент Delphi открывает диалоговое окно "Файл" и запрашивает имя модуля Object Pascal формы и предлагает выбрать диск и директорию, где будет храниться модуль формы и сама форма.

По умолчанию имя для формы – Form1, а имя для соответствующего ей модуля –unit1. Эти имена устанавливает Delphi при создании нового проекта. Можно, однако, изменять любое имя по собственному вкусу.

После команды "Файл/ Сохранить все" появляется диалоговое окно "Сохранить Unit1 Как", предоставляя вам возможность дать имя модулю формы.

Измените имя модуля формы unit1наFRMBLANK. Для этого введитеFRMBLANK(расширение .PAS не обязательно; оно будет добавлено автоматически) в окошке "Имя файла" (File Name) диалогового окна "Сохранить Unit1 Как", как показано на рис. 8.

Рис. 8. Сохранение нового модуля формы

В поле "Папка" установите личную директорию. После наименования файла модуля формы, когда будет нажата кнопка "Сохранить" диалогового окна, вас снова просят дать имя файлу самого проекта. Введите BLANK(без расширения) илиBLANK.DPRв окошко "Имя файла" (File Name) диалогового окна "Сохранить Project1 Как", которое появится вслед за предыдущим, как показано на рис. 9.

Рис. 9. Сохранение нового проекта

Файлы проекта

При сохранении нового проекта Delphi создаёт ряд файлов. Рассмотрим список наиболее важных файлов:

1. Основной файл проекта.

Этот файл имеет расширение .DPR (от Delphi PRoject – проект Delphi). Это основной для проекта модуль исходного текста Object Pascal. Имеется только один DPR-файл для каждого проекта Delphi. Этот файл, кроме всего прочего, перечисляет имена других файлов, составляющих проект.

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

Файл формы имеет расширение .DFM (от Delphi ForM – форма Delphi). Это двоичные файлы ресурсов, содержащие определение визуальных форм, которые были созданы в Дизайнере форм. В проекте Delphi может быть много форм, и каждая форма имеет собственный DFM-файл (и файл .PAS соответствующего модуля; см. далее).

3. Файл модуля Паскаля.

Этот файл имеет расширение .PAS и содержит код Object Pascal для соответствующей формы или для автономного модуля кода. По умолчанию в проекте имеется только один такой файл: модуль основной формы. Он обеспечивает поддержку основной формы. По мере развития проекта добавляются другие PAS-файлы, соответствующие формам или самостоятельные.

4. Файлы настройки.

Для проекта создаются также три вспомогательных текстовых файла, в которых сохраняются параметры настройки компилятора (.cfg), проекта (.dof) и среды (.dsk).

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

Изменяйте имена проекта по умолчанию (project1.dpr) и файлов формы (unit1.dfm/unit1.pas) на что-нибудь более информативное. Никогда не используйте имена по умолчаниюProject1иUnit1в качестве имён файлов проекта. После того как вы накопите несколько такихUnit1в различных директориях, будет очень тяжело вспомнить, что там находится. Не меняйте одно загадочное имя, вродеUnit1, на не менее загадочное имя, например,MyUnit. Используйте имена, имеющие значение, что-нибудь подсказывающее вам, что находится в файле.

Объектные и исполнимые файлы

Процесс создания Delphi-приложения включает три следующих шага:

1. Создание элементов визуального интерфейса, в частности, основной формы программы.

2. Написание поддерживающего кода Object Pascal, чтобы выполнить необходимые для формы действия.

3. Компиляция исходного кода Object Pascal и ресурсов формы в исполнимый файл .EXE, который может запускаться в Windows как отдельная программа.

Эти шаги пользователь интерактивно выполняет много раз в течение построения проекта.

В течение первых двух шагов создаются файлы с расширениями *.PAS, *.DFM и *.DPR. Третий шаг вводит некоторые новые файлы:

1. Откомпилированные файлы модуля. Эти файлы имеют расширение .DCU (Delphi Compiled Units – откомпилированные модули Delphi) и содержат объектный код соответствующего (.PAS) файла модуля. Компилятор Delphi создаёт их, когда пользователь выдаёт одну из команд: "Выполнить" (Run), "Компилировать" (Compile) или "Построить" (Build All) из меню "Выполнить" и "Проект". Система Delphi использует эти файлы .DCU, когда создаёт заключительную исполнимую программу (в фазе, называемой связывание иликомпоновка).

2. Откомпилировнные программные файлы. Эти файлы имеют расширение .EXE. Это автономные, откомпилированные программы Windows, которые могут запускаться из "Проводника" или утилиты "Мой компьютер". Создание этих файлов – конечная цель цикла разработки. Это, собственно, и есть программы Windows, которые вы хотите создавать.

3. Откомпилированные файлы динамических библиотек. Это – второй тип конечного исполняемого файла, который может создавать Delphi. Расширение по умолчанию для файла этого типа – .DLL (Dynamic Link Library). Это откомпилированные модули Windows, которые могут использоваться одновременно многими программами Windows.

Рис. 10 иллюстрирует различные файлы, которые обычно являются частью проекта Delphi, и их связь между собой.

PAS DFM

DPR

DCU

EXE или

DLL

Рис. 10. Файлы Delphi

Свойства программы BLANK

Пока создана только основная форма программы BLANK. Однако заголовок (название) формы всё ещёForm1. Это заголовок формы, соответствующий свойствуCaption(заголовок). Внутри кода Object Pascal происходит обращение к форме по имени, соответствующему свойствуName(имя).

Для того чтобы изменить NameиСaptionформы, надо сделать следующие шаги:

Щёлкните в окне Дизайнера форм, чтобы выбрать его. Имя выбранного компонента в окне Инспектора объекта должно быть уже Form1, потому что на форме нет никаких других компонентов.

Найдите свойство Nameвыбранной формы в списке свойств, которые показывает Инспектор объекта. Вам, возможно, нужно использовать линейку прокрутки Инспектора объекта, чтобы добраться до свойстваName.

Нажмите на свойство Nameв левой колонке Инспектора объекта, где показано имя свойства.

Соответствующее значение выбранного свойства (в настоящее время Form1) высвечивается в правой колонке Инспектора объекта. Теперь можно его редактировать:

Наберите новое значение свойства Nameв поле окошка редактирования свойства (справа). НапечатайтеFormBlankи нажмите клавишуEnter.

Заметьте, как заголовок формы в Дизайнере формы немедленно изменяется, чтобы отразить новое имя (FormBlank). Это, однако, не то, что мы хотим видеть в качестве заголовка формы. Мы хотим, чтобы заголовок был простоBLANK.

Свойство формы, которое вы изменили в предыдущем шаге, Name, является логическим именем, которое вы будете использовать, чтобы обращаться к форме в вашем коде Object Pascal. Имеется отдельное свойство,Caption, которое позволяет изменять текст заголовка независимо от логического имени формы.

Теперь изменим свойство формы Caption.Сделайте следующие шаги:

Найдите свойство Captionв Инспекторе объекта (помните, свойства внесены в список в алфавитном порядке).

Нажмите на колонку свойств, чтобы активировать редактор свойства Caption.

Введите новый заголовок в колонке значения свойства. Наберите BLANKи нажмите клавишуEnter.

Заметьте, как немедленно изменился заголовок на форме. Не забудьте теперь сохранить проект (Файл/ Сохранить все) так, чтобы вы не потеряли эти изменения при какой-нибудь ошибке, когда запустите программу.

Запуск программы BLANK

Чтобы запустить программу BLANK, выберите "Выполнить" (Run) из меню "Выполнить".

Что происходит, когда вы даёте команду "Выполнить"? Система Delphi транслирует исходный код, составляя ваш проект в пригодные для компоновки двоичные объектные файлы (.DCU), и затем объединяет их вместе, чтобы сформировать заключительный исполнимый (.EXE) файл. Наконец, так как вы запросили Run, Delphi немедленно запускает вашу программу. Всё это было выполнено в течение интервала между выбором "Выполнить" из меню и появлением вашей программы BLANK.

Заметьте, что окно Инспектора объекта исчезает перед тем, как появляется форма BLANK, когда вы запускаете программу. Delphi входит в исполняющий режим, в то время как ваша программа активна (в заголовке главного окна Delphi появляется словоrunning). В течение тестового прогона программы Delphi Инспектор объекта обычно недоступен. Однако вы можете сделать паузу в выполнении или временный останов программы, устанавливая контрольную точку в исходном коде внутри Редактора кода. Тогда, приостановив программу, вы можете исследовать значения свойств и переменных и использовать другие встроенные средства отладки, которые обеспечивает Delphi.

В то время как программа BLANKработает, вы можете захотеть проверить, что она действительно ведёт себя так, как вы ожидаете. Измените размер окна: минимизируйте его до пиктограммы, а затем восстановите. Попробуйте максимизировать его. Наконец, используйте команду "Закрыть" (Close) из системного меню или два раза нажмите на левый верхний угол, чтобы завершить программу и вернуть Delphi в режим проектирования.

Изменение свойств формы

Изменим фоновый цвет формы BLANK.

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

Найдите свойство Colorв Инспекторе объекта.

Обратите внимание, что текущее значение этого свойства установлено в clBtnFace.

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

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

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

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

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

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

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

Вложенные свойства

Свойство Font– пример так называемоговложенного свойства. Обратите внимание на маленький знак "плюс" рядом с именем свойства (+Font). Если вы дважды нажимаете имя свойства, свойствоFont раскрывается (знак "плюс" превращается в знак "минус") и отображает свойства более низкого уровня, или зависимые:Color, Height, Name, Size и Style.

Обратите внимание, что свойство Style, принадлежащее свойствуFont,тоже, в свою очередь, вложено (это можно видеть по знаку "плюс" перед ним). Когда вы дважды нажимаете на столбец имени свойства, свойствоStyleразворачивается, показывая следующий уровень подсвойствFont, которые определяют внешний вид шрифта.В данном случае подсвойства более низкого уровня состоят из коллекции флажков: fsBold, fsItalic, fsUnderLine и fsStrikeOut.

Размещение компонентов на форме: пример HELLO

Расширим типовую программу BLANKтак, чтобы она напечатала Hello world! внутри основной формы. Начнём с размещения нескольких компонентов на форме. Поместим метку и две кнопки на заново созданной форме:

Создайте новый проект, выбирая "Файл/ Создать/ Приложение" (Delphi может запросить вас сохранить текущий проект).

Снова Delphi создала пустую Form1иunit1. Сохраните в другой личной директории новый проект под значимым именем, вроде HELLO.

Выберите "Файл/ Сохранить все" и введите FОRMHELLOв "Имя файла" (FileName) диалогового окна "Сохранить Unit1 Как". Нажмите кнопку "Сохранить", чтобы закрыть диалоговое окно.

Наберите HELLOв окошке "Имя файла" диалогового окна "Сохранить Project1 Как" и снова нажмите кнопку "Сохранить".

Измените свойство Nameформы наFormHello.Измените свойствоCaptionформы наHELLO.

Теперь нажмите метку Standardв Палитре компонентов (основное окно Delphi), чтобы вызвать стандартную страницу компонентов, если она ещё не видима.

Нажмите кнопку компонента Label (помечена литерой А).

С выбранным компонентом Labelнажмите кнопку мыши около левого края формыFORMHELLO. Копия компонентаLabelс текстомLabel1помещается в место, где вы нажали мышь.

В то время как компонент Label1всё ещё выбран (вы можете узнать об этом по маленьким "квадратикам", окружающим компонент на форме), измените его свойствоCaptionна Hello World! (Вы должны найти свойствоCaptionв списке свойств, показанных Инспектором объекта).

Обратите внимание, как компонент автоматически изменяет свои размеры на форме по мере набора нового текста.

Из страницы StandrdПалитры компонентов выберите компонентButton, помеченный символами "ОК".

Нажмите на форму ниже метки Hello World!, чтобы поместить там новую кнопку.

Измените свойство кнопки Captionиз Button1наClose.

Теперь используйте те же самые шаги, чтобы поместить в форму другую кнопку, рядом с кнопкой Close. Маркируйте еёUnneeded(ненужная) при помощи свойства Caption. Вы удалите эту кнопку из формы в одном из следующих шагов.

Сохраните проект (Файл/ Сохранить все) и запустите программу (Выполнить/ Выполнить). Ваша программа должна отобразить окно, подобное тому, что на рис. 11.

Замечание.Когда вы пытаетесь сохранить проект при помощи команды "Файл/ Сохранить все", помните, что сначала надо дать имя модулю. Не называйте модуль формы так, как собираетесь называть весь проект! Если вы это сделаете, Delphi не позволит вам сохранить файл проекта под тем же именем, что и модуль формы. Вы увидите сообщение, что в проекте модуль с таким именем уже существует. Называйте модуль формы так, чтобы имя описывало саму форму. Проект называйте более общим именем, отражающим цель всего проекта.

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

Рис. 11. Начальный внешний вид программы HELLO

нажмите компонент в палитре, держа нажатой клавишу Shift.Теперь вы можете последовательно нажимать на форму несколько раз, последовательно располагая один компонент за другим. Компонент остаётся выбранным, пока вы явно не выберите какой-нибудь другой компонент.

Реорганизация и удаление компонентов

Улучшим внешний вид программы HELLO следующим образом:

Завершите пробный прогон программы.

Выберите на форме кнопку Unneeded, нажимая на неё мышью. Вы должны увидеть чёрные квадратные петельки в каждом углу и на каждом крае компонента. Они сообщают вам, что компонент выбран.

Нажмите клавишу Delete.

Теперь компонент удалён!

Перемещение компонентов формы

Вы, вероятно, не вполне эстетически удовлетворены случайным размещением компонентов на форме HELLO. Непросто поместить компоненту точно с первого раза. Но этого и не требуется.

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

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

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

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

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

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

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

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

Рис. 12 иллюстрирует представление о координатах формы и показывает возможный диапазон координат. Координаты с самым высоким значением, всё ещё видимые в форме, – это ClientWidth-1, ClientHeight-1.

Если для обоих свойств LeftиTopвводится значение 0 (нуль), то выбранный компонент помещается в левом верхнем углу формы.

Увеличение значения свойства Leftперемещает компонент в горизонтальном направлении формы всё дальше и дальше вправо. Если значениеLeftпревышает значение свойстваClientWidthсамой формы, то компонент скроется за правым краем формы.

Рис. 12. Координаты формы

Увеличение значения свойства Topза пределы параметраClientHeightпереместит компонент за край нижней части формы.

Попробуйте теперь переместить кнопку Closeв координатыLeft=60 иTop=100. Не забудьте нажимать клавишуEnterкаждый раз, когда вы вводите новое значение для какого-нибудь из этих свойств.

Замечание.Существуют укороченные команды клавиатуры для перемещения компоненты в форме на несколько пикселов в любом направлении. Выбрав интересующий вас компонент (или группу компонентов), нажмите клавишуCtrlи, не отпуская её, используйте клавиши стрелок, чтобы перемещать компонент в нужном направлении по пикселу. Попробуйте!

Выравнивание компонентов

Возможность точно помещать компонент ещё не решает всех ваших проблем. Допустим, вы хотите, чтобы кнопкаCloseбыла центрирована внутри формы, около края нижней части. При этом не нужно выполнять утомительных вычислений положения кнопки, учитывая её ширину и ширину формы.

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

Выберите кнопку Closeна форме. Никакой другой компонент не должен быть выбран в это время.

Выберите опцию "Выровнять" (Align) из меню "Правка" (Edit). Появляется диалоговое окно "Выравнивание" (Alignment).

Последняя опция внутри группы "По горизонтали" (Horizontal), "По центру окна" (Center in window), – это то, что вам сейчас нужно.

Поставьте радиокнопку последней опции в колонке "По горизонтали" (Horizontal) окна "Выравнивание" (Alignment) (слева): "По центру окна" (Center in window).

Нажмите кнопку ОК, чтобы закрыть диалоговое окно.

Кнопка Closeвнутри формы теперь центрирована.

Следуйте тем же самым инструкциям, чтобы заодно горизонтально центрировать метку Hello World!

Изменение размеров компонента

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

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

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

Замечание.Существуют укороченные команды клавиатуры для изменения размеров компонента, после того как он уже был помещён на форму. Эти команды позволяют изменять размер в любом направлении по пикселу. Вы можете настраивать свойства компонентовWidthиHeight. Когда интересующий компонент (или группа компонентов) выбрана, нажмите клавишуShiftи, не отпуская её, используйте клавиши стрелок, чтобы изменить его размер в любом направлении. Попробуйте!