Главная страница

Учебное пособие для студентов Авторы А. Н. Вальвачев, К. А. Сурков, Д. А. Сурков, Ю. М. Четырько Содержание Содержание 1


Скачать 2.61 Mb.
НазваниеУчебное пособие для студентов Авторы А. Н. Вальвачев, К. А. Сурков, Д. А. Сурков, Ю. М. Четырько Содержание Содержание 1
Дата15.01.2023
Размер2.61 Mb.
Формат файлаdoc
Имя файлаlab_OOTP.doc
ТипУчебное пособие
#886736
страница18 из 33
1   ...   14   15   16   17   18   19   20   21   ...   33
Tools | Environment Options... и в диалоговом окне Environment Options на вкладке Preferences в группе Autosave options отметьте пункт Project Desktop.

  • Файл с расширением CFG (сокр. от англ. Configuration), где хранятся настройки для консольного варианта компилятора.

  • Файл с расширением DCI (сокр. от англ. Delphi CodeInsight), где среда Delphi хранит сделанные вами настройки для программного "суфлера" (CodeInsight).

  • Файл с расширением DCT (сокр. от англ. Delphi Component Templates), где хранятся ваши домашние заготовки компонентов.

  • Файл с расширением DMT (сокр. от англ. Delphi Menu Templates), где хранятся ваши домашние заготовки меню.

  • Файл с расширением DRO, где хранятся настройки и ваши добавки к хранилищу компонентов.

  • Файл с расширением TODO — записная книжка для хранения заданий на программирование и коротких примечаний.

  • Файл с расширением DDP (сокр. от англ. Delphi Diagram Portfolio), где хранятся графические схемы, наглядно поясняющие взаимосвязи между компонентами.

  • Файл ресурсов с расширением RES (сокр. от RESource). В нем, например, хранится значок приложения, который отображается на Панели Задач. О том, как задать значок приложения, мы расскажем при обсуждении вопросов управления проектом.

    В проект могут входить также логически автономные элементы: точечные рисунки (BMP-файлы), значки (ICO-файлы), файлы справки (HLP-файлы) и т.п., однако ими управляет сам программист.

    Теперь можно уточнить рисунок, отражающий состав проекта (рисунок 7.4):



    Рисунок 7.4.Состав проекта в среде Delphi

    Итак, состав проекта понятен. Нужно теперь выяснить, как им управлять — создавать и сохранять проект, добавлять и удалять модули, устанавливать параметры компиляции, собирать и запускать приложение. Этим сейчас и займемся.

    7.2. Управление проектом

    7.2.1. Создание, сохранение и открытие проекта

    При запуске среды Delphi автоматически создается новый проект. Это сделано для вашего удобства. Если вам потребуется создать новый проект, не перегружая среду Delphi, просто выполните команду меню File | New | Application. В результате старый проект будет закрыт, а вместо него создан новый. В новый проект среда Delphi всегда помещает чистую форму.

    В процессе разработки приложения вы добавляете на форму компоненты, пишите обработчики событий, добавляете в проект дочерние формы, в общем, проектируете приложение. Когда что-то уже сделано, имеет смысл сохранить проект. Для этого выполните команду главного меню File | Save All. Среда запросит сначала имя для программного модуля с формой, а затем имя для проекта (кстати, вы уже сохраняли файл в первой главе). Если файл с введенным именем уже есть на диске, среда Delphi сообщит вам об этом и запросит подтверждение на перезапись существующего файла или запись под другим именем.

    Если вдруг потребуется заменить имя проекта другим именем, воспользуйтесь командой меню File | Save Project As... . Если же нужно заменить имя модуля, воспользуйтесь командой File | Save As... . Операции эти элементарны и не требуют дальнейших пояснений.

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



    Рисунок 7.5. Окно выбора проекта

    С открытым проектом можно продолжить работу: исправить, компилировать, выполнить, и не забыть сохранить.

    7.2.2. Окно управления проектом

    При создании более или менее сложного приложения программист всегда должен знать, на какой стадии разработки он находится, иметь представление о составе проекта, уметь быстро активизировать нужный файл, добавить в проект какой-либо новый файл или удалить ненужный, установить параметры компиляции, и т.д. Для этого в среде Delphi имеется окно управления проектом — окно Project Manager. Фактически это визуальный инструмент для редактирования главного файла проекта. Окно управления проектом вызывается из главного меню командой View | Project Manager. После выбора этой команды на экране появится окно, в котором проект представлен в виде дерева (рисунок 7.6).



    Рисунок 7.6. Окно управления проектом

    Выделенный жирным шрифтом элемент Project1 — это наш проект. Его имя совпадает с именем выполняемого файла, который получается в результате компиляции и сборки всех модулей проекта. Список модулей отображается в виде подчиненных элементов. Если элемент является формой, то он в свою очередь сам состоит из двух подчиненных элементов: программного модуля формы (PAS-файл) и описания формы (DFM-файл).

    Управление проектом выполняется с помощью контекстного меню, которое вызывается щелчком правой кнопки мыши по элементу Project1 (рисунок 7.7).



    Рисунок 7.7. Контекстное меню проекта

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

    Команда

    Описание

    Add…

    Добавляет существующий файл (модуль) в проект.

    Remove File…

    Удаляет файл (модуль) из проекта.

    Save

    Сохраняет проект на диск.

    Options…

    Вызывает диалоговое окно настройки проекта (Project Options).

    Activate

    Делает проект активным (при работе с группой проектов, см. параграф 7.2.3).

    Close

    Закрывает проект.

    Remove Project

    Удаляет проект из группы (см. параграф 7.2.3).

    Build Sooner

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

    Build Later

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

    Compile All From Here

    Компилирует измененные проекты по порядку, начиная с выделенного проекта. Используется при работе с группой проектов (см. параграф 7.2.3).

    Build All From Here

    Компилирует все проекты по порядку, начиная с выделенного проекта. Используется при работе с группой проектов (см. параграф 7.2.3).

    Управление отдельным модулем выполняется с помощью контекстного меню, которое вызывается щелчком правой кнопки мыши по соответствующему элементу, например Unit1 (рисунок 7.8).



    Рисунок 7.8. Контекстное меню модуля в окне управления проектом

    Назначение основных команд контекстного меню кратко описано в следующей таблице:

    Команда

    Описание

    Open

    Открывает модуль. Если модуль содержит форму, то на экране появляется ее графическое представление. Иначе, на экране появляется редактор кода с исходным текстом программного модуля.

    Remove From Project

    Удаляет модуль из проекта.

    Save

    Сохраняет модуль на диск.

    Save As…

    Сохраняет модуль с новым именем.

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

    7.2.3. Группы проектов

    На практике несколько проектов могут быть логически связаны между собой, например проект динамически подключаемой библиотеки связан с проектом приложения, в котором используется эта библиотека. Среда Delphi позволяет объединить такие проекты в группу. Именно для этого в окне управления проектом имеется корневой элемент ProjectGroup1, подчиненными элементами которого и являются логически связанные проекты. Порядок элементов определяет очередность сборки проектов. Изменить порядок можно с помощью команд Build Sooner и Build Later, которые находятся в контекстном меню, вызываемом щелчком правой кнопки мыши по соответствующему проекту (рисунок 7.7).

    На данный момент в группе существует только один проект — Project1. Для добавления других проектов в группу воспользуйтесь контекстным меню, которое вызывается щелчком правой кнопки мыши по элементу ProjectGroup1 (рисунок 7.9).



    Рисунок 7.9. Контекстное меню группы проектов

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

    Команда

    Описание

    Add New Project…

    Создает новый проект и добавляет его в группу.

    Add Existing Project…

    Добавляет существующий проект в группу.

    Save Project Group

    Сохраняет файл, описывающий группу проектов.

    Save Project Group As…

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

    View Project Group source

    Показывает текстовый файл, описывающий группу проектов.

    Когда в группу объединены несколько проектов, среда Delphi создает специальный текстовый файл с описанием этой группы. Файл имеет расширение BPG (от англ. Borland Project Group), а его имя запрашивается у пользователя. Для групп, состоящих из одного единственного проекта BPG-файл не создается.

    7.2.4. Настройка параметров проекта

    Проект имеет много различных параметров, с помощью которых вы управляете процессом компиляции и сборки приложения. Установить параметры проекта можно в окне Project Options. Для этого выберите в главном меню команду Project | Options... или в окне управления проектом вызовите контекстное меню элемента Project1 и выберите команду Options.... На экране появится диалоговое окно; вам останется лишь установить в нем нужные значения параметров.

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

    На вкладке Forms (рисунок 7.10) можно задать главную форму приложения (Main form) и в списке Auto-create forms указать формы, которые будут создаваться одновременно с главной формой.



    Рисунок 7.10. Окно параметров проекта. Вкладка Forms

    На вкладке Application (рисунок 7.11) можно задать название (Title) вашей программы. В среде Delphi дополнительно можно задать файл справки (Help file) и значок (Icon).



    Рисунок 7.11. Вкладка Application в окне параметров проекта

    На вкладке Compiler (рисунок 7.12) настраиваются параметры компилятора. Наиболее интересными из них являются переключатели Optimization (включает оптимизацию генерируемого кода) и Use Debug DCUs (позволяет отлаживать исходный код системных библиотек). Оба этих переключателя полезны при отладке программы: первый следует выключить, а второй — включить.



    Рисунок 7.12. Вкладка Compiler в окне параметров проекта

    На вкладке Compiler Messages (рисунок 7.13) настраивается чувствительность компилятора к подозрительному коду. Включив переключатели Show hints и Show warnings, вы будете получать от компилятора весьма полезные подсказки (hints) и предупреждения (warnings), а не только сообщения об ошибках.



    Рисунок 7.13. Вкладка Compiler Messages в окне параметров проекта

    На вкладке Linker (рисунок 7.14) настраиваются параметры сборки проекта. Обладателям среды Delphi следует обратить внимание на группу Memory sizes, особенно на два параметра: Min stack size и Max stack size. Они задают соответственно минимальный и максимальный размеры стека прикладной программы. Вам может потребоваться увеличить значения этих параметров при написании приложения, активно использующего рекурсивные подпрограммы.



    Рисунок 7.14. Вкладка Linker в окне параметров проекта

    На вкладке Directories/Conditionals (рисунок 7.15) можно задать каталоги для различных файлов. Наиболее важные из них: Output directory — каталог, в который помещается выполняемый файл; Unit output directory — каталог, в который помещаются промежуточные объектные модули (DCU-файлы); Search path — список каталогов, в которых осуществляется поиск программных модулей.



    Рисунок 7.15. Вкладка Directories/Conditionals в окне параметров проекта

    На вкладке Version Info (рисунок 7.16) выводится информация о версии приложения. Для того чтобы эта информация помещалась в выполняемый файл, нужно включить переключатель Include version information in project. Номер версии задается в виде четырех чисел: Major version — старший номер версии программы (его обычно увеличивают при внесении в программу концептуально новых возможностей); Minor version — младший номер версии программы (его обычно увеличивают при незначительном расширении функциональных возможностей программы); Release — номер выпуска программы, которая отлажна и пригодна к использованию заказчиком; Build — порядковый номер сборки проекта (он автоматически увеличивается на единицу при компиляции проекта, если включен переключатель Auto-increment build number). Все эти параметры несут лишь информативный характер и не влияют на работу самой программы. Однако, информация о версии может использоваться специальными программами установки пользовательских программ для контроля за тем, чтобы более новые версии библиотек не заменялись более старыми.



    Рисунок 7.16. Вкладка Version Info в окне параметров проекта

    На вкладке Packages (рисунок 7.17) вы можете управлять списком пакетов, используемых в вашем проекте. Пакеты — это внешние библиотеки компонентов, они рассмотрены в главе 13. Обратите внимание на переключатель Build with runtime packages, который позволяет существенно уменьшить размер выполняемого файла за счет использования внешних библиотек компонентов вместо встраивания их кода непосредственно в выполняемый файл. Этот режим выгоден при создании нескольких программ, построенных на базе большого количества общих компонентов.



    Рисунок 7.17. Вкладка Packages в окне параметров проекта

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

    7.2.5. Компиляция и сборка проекта

    Компиляция и сборка проекта могут выполняться на любой стадии разработки проекта. Под компиляцией понимается получение объектных модулей (DCU-файлов) из исходных текстов программных модулей (PAS-файлов). Под сборкой понимается получение выполняемого файла из объектных модулей. В среде Delphi компиляция и сборка проекта совмещены.

    Для выполнения компиляции достаточно выполнить команду меню Project|Compile<Имяпроекта> или нажать комбинацию клавиш Ctrl+F9. При этом компилируются все исходные модули, содержимое которых изменялось после последней компиляции. В результате для каждого программного модуля создается файл с расширением DCU (сокр. от Delphi Compiled Unit). Затем среда Delphi компилирует главный файл проекта и собирает (иногда говорят компонует) из DCU-модулей выполняемый файл, имя которого совпадает с именем проекта. К сведению профессионалов заметим, что смышленый компилятор среды Delphi выбрасывает из выполняемого файла весь неиспользуемый программный код, поэтому не стоит волноваться по поводу лишних объектов и подпрограмм, которые могут присутствовать в подключенных модулях.

    Существует особый вид компиляции и сборки — полная принудительная компиляция всех программных модулей проекта, для которых доступны исходные тексты, с последующей сборкой выполняемого файла. При этом не важно, вносились в них изменения после предыдущей компиляции или нет. Полная компиляция проекта выполняется с помощью команды главного меню Project| Build<Имяпроекта>. В результате тоже создается выполняемый файл, но на это тратиться немного больше времени.

    7.2.6. Запуск готового приложения

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

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

    7.3. Форма

    7.3.1. Понятие формы

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

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

    Выберите в меню команду File|New|Application. Среда Delphi автоматически создаст в новом проекте чистую форму и поместит ее исходный текст в редактор кода (рисунок 7.18).



    Рисунок 7.18. Форма на экране и ее описание в редакторе кода

    Сразу сохраните проект и его форму, чтобы дать им осмысленные имена. Выберите в меню команду File | Save All и дайте модулю имя Main.pas, а проекту — имя FormTest.dpr. Полигон для изучения формы подготовлен, можно заняться ее свойствами.

    7.3.2. Имя и заголовок формы

    Главное свойство, с которого вы начинаете настройку формы, – это свойство Name — имя. Оно содержит идентификатор, используемый для обращения к форме из программы (рисунок 7.19). Первой же форме нового проекта автоматически назначается имя Form1. Мы советуем всегда его изменять, чтобы имя формы отражало ее роль в приложении. Например, главную форму приложения можно назвать MainForm (если ничего лучше в голову не приходит).



    Рисунок 7.19. Программный идентификатор формы

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

    Каждая форма приложения должна иметь понятный заголовок, говорящий пользователю о ее назначении. Заголовок задается в свойстве Caption. Наша форма — учебная, поэтому мы дадим ей заголовок Main, говорящий о том, что это просто главная форма (рисунок 7.20).



    Рисунок 7.20. Заголовок формы

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

    7.3.3. Стиль формы

    Настраивая форму, нужно принимать во внимание, какой пользовательский интерфейс будет иметь ваше приложение: многодокументный интерфейс MDI (от англ. Multiple Document Interface) или обычный одно-документный интерфейс SDI (от англ. Single Document Interface). За это отвечает свойство формы FormStyle, которое может принимать следующие значения:

    • fsMDIChild – дочернее окно MDI-приложения;

    • fsMDIForm – главное окно MDI-приложения;

    • fsNormal – обычное окно (значение по умолчанию);

    • fsStayOnTop – окно, всегда расположенное поверх других окон на экране.

    Многие приложения, с которыми вы работаете, имеют пользовательский интерфейс MDI. Они состоят из основного окна, которое включает одно или несколько внутренних окон. Внутренние окна ограничены областью основного окна и не могут выходить за его границы. Для главной формы, соответствующей основному окну MDI-приложения, значение свойства FormStyle должно быть равно fsMDIForm. Для всех второстепенных форм, соответствующих внутренним окнам, значение свойства FormStyle равно fsMDIChild. Для окон диалога, выполняющихся в монопольном режиме, свойство FormStyle равно значению fsNormal, что дает возможность выносить их за пределы основной формы.

    Если программа имеет пользовательский интерфейс SDI, то каждая форма существует в виде отдельного независимого окна. Одно из окон является главным, однако оно не содержит другие окна. В SDI-приложении значение свойства FormStyle равно fsNormal и для главной формы, и для второстепенных форм. В некоторых случаях допускается установка значения fsStayOnTop для того, чтобы форма всегда отображалось поверх других форм.

    Очевидно, что наш простой вычислитель идеального веса является SDI-приложением и поэтому свойство FormStyle имеет значение по умолчанию — fsNormal.

    7.3.4. Размеры и местоположение формы на экране

    Теперь определимся с размерами формы и ее местоположением на экране. Установить размеры и положение формы проще всего во время проектирования с помощью мыши. Другой способ — обратиться к окну свойств и задать размеры формы с помощью свойств Width и Height, а местоположение — с помощью свойств Left и Top (значения задаются в пикселах). Смысл свойств поясняет рисунок 7.21.



    Рисунок 7.21. Размеры и местоположение формы на экране

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

    • poDefault – размеры и положение формы подбираются автоматически исходя из размеров экрана.

    • poDefaultPosOnly – положение формы подбирается автоматически, а ширина и высота определяются значениями свойств Width и Height соответственно.

    • poDefaultSizeOnly – размеры формы устанавливаются автоматически, а местоположение определяется значениями свойств Left и Top.

    • poDesigned – размеры и положение формы определяются значениями свойств Left, Top, Width, Height.

    • poDesktopCenter – форма размещается в центре рабочего стола (т.е. экрана, из которого исключена панель задач). Размеры формы определяются значениями свойств Width и Height.

    • poMainFormCenter – форма центрируется относительно главной формы. Размеры формы определяются значениями свойств Width и Height.

    • poOwnerFormCenter – форма центрируется относительно формы-владельца. Размеры формы определяются значениями свойств Width и Height.

    • poScreenCenter – форма размещается в центре экрана. Размеры формы определяются значениями свойств Width и Height.

    Иногда размеры формы рассчитываются исходя из размеров ее внутренней рабочей области (client area), на которой размещаются компоненты. Как известно, в рабочую область не входят рамка и заголовок. Размеры рабочей области хранятся в свойствах ClientWidth и ClientHeight. При их установке значения свойств Width и Height автоматически пересчитываются (и наоборот).

    Бывает, что при выборе размеров формы учитываются размеры экрана. Поскольку современные видео-адаптеры поддерживают множество режимов с различными разрешениями, встает вопрос: как обеспечить одинаковую пропорцию между формой и экраном независимо от разрешающей способности дисплея. На этот случай в форме предусмотрено свойство Scaled. Если оно установлено в значение True, то форма будет автоматически масштабироваться в зависимости от разрешающей способности дисплея.

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

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

    • wsNormal – форма находится в нормальном состоянии (ни свернута, ни развернута на весь экран);

    • wsMinimized – форма свернута;

    • wsMaximized – форма развернута на весь экран.

    Если при проектировании вы измените значение свойства WindowState на wsMinimized или wsMaximized, то получите форму, которая при первом появлении будет автоматически либо свернута в панель задач, либо развернута на весь экран.

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

    • dmDesktop – форма отображается на текущем мониторе; никаких попыток разместить форму на каком-то конкретном мониторе не делается;

    • dmPrimary – форма отображается на первом мониторе в списке Monitors объекта Screen (см. параграф 7.7.2);

    • dmMainForm – форма отображается на том мониторе, на котором находится главная форма;

    • dmActiveForm – форма отображается на том мониторе, на котором находится активная в данный момент форма.

    Свойство DefaultMonitor учитывается лишь в том случае, если в программе существует главная форма.

    7.3.5. Цвет рабочей области формы

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



    Рисунок 7.22. Стандартоне диалоговое окно выбора цвета

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

    7.3.6. Рамка формы

    Во внешнем виде формы очень важную роль играет рамка и расположенные на ней кнопки "Свернуть", "Развернуть", "Закрыть" (рисунок 7.23). Стиль рамки задается с помощью свойства BorderStyle, которое может принимать следующие значения:

    • bsNone — у окна вообще нет ни рамки, ни заголовка;

    • bsDialog — неизменяемая в размерах рамка, свойственная диалоговым окнам;

    • bsSingle — неизменяемая в размерах рамка для обычного окна;

    • bsSizeable — изменяемая в размерах рамка для обычного окна;

    • bsToolWindow — аналогично значению bsSingle, но окно имеет слегка уменьшенный заголовок, что свидетельствует о его служебном назначении;

    • bsSizeToolWin — аналогично значению bsSizeable, но окно имеет слегка уменьшенный заголовок, что свидетельствует о его служебном назначении.

    Обычно свойство BorderStyle имеет значение bsSizeable. В этом случае форма имеет стандартную изменяемую в размерах рамку (как при проектировании), заголовок, меню управления, кнопки "Свернуть", "Развернуть", "Закрыть" и, иногда, "Справка". Для указания того, какие именно из этих элементов отображать, используется свойство BorderIcons. Список его возможных значений следующий:

    • biSystemMenu — рамка формы содержит меню управления, которое вызывается щелчком правой кнопки мыши по заголовку формы;

    • biMinimize – рамка формы имеет кнопку "Свернуть";

    • biMaximize – рамка формы имеет кнопку "Развернуть";

    • biHelp – рамка формы имеет кнопку "Справка". При нажатии кнопки "Справка", курсор мыши превращается в стрелку со знаком вопроса. Выбирая таким курсором нужный элемент формы, пользователь получает по нему справку во всплывающем окне.



    Рисунок 7.23. Рамка формы и ее контекстное меню

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

    7.3.7. Значок формы

    Если вы разрабатываете коммерческое приложение, а не тестовый пример, следует позаботиться о том, чтобы форма имела в своем левом верхнем углу выразительный значок. Для разработки значков существует множество средств, на которых мы не будем останавливаться. Когда значок готов и сохранен в файле, его нужно просто установить в качестве значения свойства Icon (рисунок 7.24).



    Рисунок 7.24. Установка значка формы

    Для этого откройте окно Picture Editor нажатием кнопки с многоточием (рисунок 7.25). Нажмите кнопку Load... и выберите какой-нибудь файл из стандартной коллекции значков (как правило, каталог C:\Program Files\Common Files\Borland Shared\Images). После этого закройте диалоговое окно с помощью кнопки OK.



    Рисунок 7.25. Окно выбора значка для формы

    Среда Delphi сразу же подставит выбранный значок в левый верхний угол формы (рисунок 7.26).



    Рисунок 7.26. Новый значок формы

    7.3.8. Невидимая форма

    Сценарий решения задачи может потребовать, чтобы в некоторый момент форма стала невидимой, т.е. исчезла с экрана. За “видимость” формы отвечает булевское свойство Visible. Установка ему значения False скроет форму, а установка значения True покажет ее.

    7.3.9. Прозрачная форма

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



    Рисунок 7.27. Прозрачная форма

    Например, рисунок 7.27 был получен следующим образом. Мы положили на форму компонент Shape, превратили его в эллипс (Shape = stEllipse), растянули до размеров формы (Align = alClient), в форме установили свойство TransparentColor в значение True и уравняли в форме значение свойства TransparentColorValue со свойством Brush.Color компонента Shape. После сборки и запуска программы получили «дырявую» форму.

    7.3.10. Полупрозрачная форма

    Форма может быть полупрозрачной (рисунок 7.28). За полупрозрачность формы отвечают свойства AlphaBlend и AlphaBlendValue. Первое свойство включает и выключает эффект полупрозрачности, а второе определяет силу прозрачности.



    Рисунок 7.28. Полупрозрачная форма

    Например, рисунок 7.28 был получен следующим образом. Мы положили на форму компонент Image, загрузили в него картинку (свойство Picture), затем в форме установили свойство AlphaBlend в значение True и свойство AlphaBlendValue — в значение 150. После сборки и запуска программы получили эффект полупрозрачности.

    7.3.11. Недоступная форма

    Иногда бывает нужно просто запретить доступ к форме, не убирая ее с экрана. Для этого служит другое булевское свойство Enabled. Обычно оно равно значению True, но стоит ему присвоить противоположное значение, и после запуска приложения вы не сможете сделать форму активной.

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

    7.3.12. События формы

    Итак, со свойствами мы разобрались и пора сказать пару слов о возникающих при работе с формой событиях. С вашего позволения мы опустим те события формы, которые происходят во всех видимых на экране компонентах (мы о них расскажем позже, когда будем рассматривать компоненты). Перечислим лишь характерные события форм:
    1   ...   14   15   16   17   18   19   20   21   ...   33


  • написать администратору сайта