Класс TForm Форма — это важнейший компонент Delphi, на котором основана вся работа этой системы по проектированию и разработке приложений. Форма (класс TForm) содержит обширный набор свойств методов и событий, позволяющих легко настраивать и организовывать самые сложные алгоритмы ее функционирования. Поскольку чаще всего приходится работать именно с формой,то многие элементы описаны достаточно полно. Однако поскольку форма наследует все свойства элемента управления TControl (будем подробно рассматривать позже), для многих свойств дано только краткое описание. Все свойства, которые отображаются в инспекторе объектов, описаны в табл.1. Если хорошо изучить эти свойства, то работа с остальными элементами управления не будет представлять особых трудностей, так как многие свойства повторяются. События класса TForm приведены в табл. 2. Таблица 1. Свойства класса TForm Свойство Active ActiveControl Align AlphaBlend AlphaBlendValue Anchors AutoScroll AutoSize BiDiMode Borderlcons BorderStyle BorderWidth Caption Canvas ClientHeight, ClienlWidth Color Constraints Ctl3D Cursor DefaultMonitor DockSite DropKind, DragMode Enabled Назначение Определяет наличие фокуса Указывает элемент управления, имеющий фокус Изменяет размеры и положение формы Определяют прозрачность формы. Замечание. Эти свойства работают только с операционной системой Windows 2000 и выше на компьютере с процессором Р90 или более мощным Используется для привязки углов элемента управления к углам включающего их компонента Если True, то полосы прокрутки появляются только при необходимости Если True, то границы могут изменяться автоматически при изменении содержимого Определяет режим для направления считывания Определяет пиктограмму в заголовке окна Вид границ формы: bsDialog — неизменяемые границы стандартного диалогового окна; bssingle — неизменяемые, одиночная линия; bsNone — неизменяемые, нет видимой границы; bssizeable — стандартная изменяемая граница; bsToolwindow— подобно bsSingle, но с уменьшенным заголовком; bsSizeToolWin — подобно bssizeable, но с уменьшенным заголовком Ширина рамки Название формы, помещаемое в заголовке Область рисования формы Размеры клиентской части формы (без заголовка) Цвет фона формы Ограничители, устанавливающие пределы автоматического изменения размеров формы Вид формы — объемный (3D) или нет Определяет вид курсора при наведении указателя мыши на форму Определяет монитор, в котором отображается форма Содержит значение True, если к форме разрешено "пристыковываться" другим окнам Определяют возможности формы при операциях перетаскивания элементов Определяет реакцию формы на события мыши, клавиатуры и Font FormStyle Heigth HelpContex HelpFile HelpKeyword HelpType Hint HorzScrollBar Icon KeyPreview Left MDIChildCount MDIChildren Menu ModalResult Monitor Name ParentBiDiMode ParentFont PixelsPerlnch Position таймеров Установка шрифтов для формы Стиль формы. Свойство может принимать следующие значения: fsNormal — форма не является родительским или дочерним окном; fsMDichild — форма является дочерним окном; fsMDiForm — форма является родительским окном; fsStayOnTop — форма всегда остается вверху рабочего окна над другими формами проекта, если у других окон не установлен режим fsStayOnTop Высота формы с заголовком и рамкой Используется для организации справочника Имя файла справки для формы Ключевое слово для справочника Используется для организации справочника Содержит текст подсказки, появляющейся при наведении на форму указателя мыши Свойства горизонтальной полосы прокрутки Пиктограмма, обозначающая форму, когда она свернута Содержит значение True, если форма должна получать информацию о нажатых клавишах раньше, чем расположенные в ней объекты. При значении False информация о нажатых клавишах принимается только активным элементом управления. Навигационные клавиши (<ТаЬ>, <BackTat», клавиши со стрелками и т.д.) в этом режиме не учитываются, так как они не генерируют события. По умолчанию значение равно False Координаты левого угла привязки Содержит номер открытой дочерней MDI-формы Доступ к дочерним окнам по индексу Ссылка на главное меню формы (TMenu) Значение, возвращаемое формой, если она работает как модальное диалоговое окно Получение информации о мониторе, в котором отображается форма Идентификатор (имя) формы для обращения к ней в программе Использование направления, установленного в базовом классе Использование шрифтов, установленных в базовом классе Число пикселей на дюйм. Применяется для настройки размера формы в зависимости от экранного разрешения Положение формы на экране в момент ее открытия. Возможны следующие значения: poDesigned — форма отображается на экране с теми размерами и позицией, которые заданы в момент проектирования; poDef a u l t — форма отображается на экране с размерами и позицией, определяемыми операционной системой; poDef aultPosOnly — форма отображается на экране с размерами, заданными при проектировании, и позицией, определяемой операционной системой; poDef aultSizeOnly — форма отображается на экране с позицией, заданной при проектировании, и размерами, определяемыми операционной системой; poScreenCenter — форма отображается на экране с размерами, заданными при проектировании, в центре экрана. В приложениях для работы с несколькими мониторами может происходить настройка в соответствии со свойством DefaultMonitor; PrintScale Scaled ScreenSnap ShowHints SnapBuffer Tag Top TransparentColor TransparentColorValue UseDockManager VertScrollBar Visible Width WindowState poDesktopCenter — форма отображается на экране с размерами, заданными при проектировании, ив центре экрана. Никаких дополнительных настроек в режиме работы с несколькими мониторами; poMainFormCenter — форма отображается на экране с размерами, заданными при проектировании, и в центре главной формы приложения, без настроек в режиме работы с несколькими мониторами; poOwnerFormCenter — форма отображается на экране с размерами, заданными при проектировании, и в центре формы, указанной в свойстве Owner. Если это свойство не определено, то аналогично poMainFormCenter Масштабирование формы при выводе на печать Содержит значение True, если размер формы будет подгоняться в соответствии со значением свойства PixelsPerlnch Разрешение на стыковку с границей экрана при приближении окна на расстояние, указанное в свойстве SnapBuffer Разрешение на отображение подсказки Установка зоны в пикселях для стыковки с границей экрана Связывает числовое значение с формой Координаты угла привязки Разрешает прозрачность отдельного цвета Определяет цвет, который будет прозрачным Разрешение режима стыковки при перетаскивании Свойства вертикальной полосы прокрутки Содержит значение True, если форма будет видима во время работы программы Ширина формы с рамкой Состояние формы (свернута, развернута, нормальный размер) Модуль с формой содержит две вкладки: одна как графическое отображение, другая как текстовый редактор. Для переключения между вкладками щелкните на соответствующих корешках или используйте клавишу <F12>. Совет студентам третьего курса:) :Не бойтесь экспериментировать, поскольку читая только справочную информацию, невозможно изучить графический интерфейс Delphi. Таблица 2. События, поддерживаемые классом TForm Событие Условия генерации OnActivate При активизации формы OnClose При закрытии формы OnCloseQuery При запросе на закрытие формы OnCreate При создании формы OnDeactivate При потере фокуса ввода OnDestroy При уничтожении формы OnDockDrop При стыковке с другим окном OnDropOver При расстыковке с другим окном OnGetSiteinfo При стыковке окон OnHelp Форма получила запрос на выдачу справочной информации OnHide Форма стала невидимой (свойство v i s i b l e имеет значение False) onKeyDown в момент нажатия клавиши клавиатуры при наличии фокуса OnKeyPressed В момент нажатия клавиши клавиатуры OnKeyUp При отпускании клавиши клавиатуры OnPaint OnshortCut OnShow OnUpDock При перерисовке формы Пользователь нажал клавиатурную комбинацию, которая пока не обработана Форма стала видимой (значение свойства Visible стало True) При расстыковке элемента управления, подключенного средствами окна Контрольные вопросы 1. Если при описании класса явно не указывать базовый класс, то какой класс будет использоваться в качестве базового? 2. От какого класса унаследован класс TForm? 3. Какие свойства формы вы сразу запомнили? 4. Можно ли переопределять методы класса TObject? Задания: Создать следующую форму: a) 1. Заголовок - Ваши фамилии 2. Пиктограмма – Turbo Pascal (или домашняя заготовка) 3. Размер 250х400. Ограничить возможность изменения размеров формы пользователем 100 пикселями в любом направлении. 4. При наведении на форму курсор должен изменяться на HandPoint, а так же должна появляться подсказка ( на Ваш выбор – при “отключенной” фантазии-“Форма, однако”) 5. Цвет фона – зеленый 6. При щелчке левой кнопкой мыши по форме – окно формы должно сворачиваться b) 6. При щелчке левой кнопкой мыши по форме – окно формы должно увеличиваться в размерах на 10 пикселей (до максимального при каждом следующем “клике”), а потом уменьшаться на 10 пикселей (до минимального при каждом следующем “клике”). с) программа – конвертер (1 версия)