СОДЕРЖАНИЕ
Введение
|
3
|
1. Общая
характеристика формы.
|
4
|
2. Основные свойства формы.
|
4
|
3. Основные методы и события формы.
|
10
|
4. Создание, сохранение и открытия проекта.
|
11
|
5. Примеры работы с компонентом Label.
|
16
|
Список
используемых источников.
|
18
|
Введение
Форма является основным интерфейсным
элементом в Delphi. С точки зрения Windows форма представляет собой окно. С
точки зрения Delphi форма – это визуальный компонент, играющий роль контейнера,
который содержит другие компоненты, определяющие функциональность приложения.
У формы достаточно много свойств.
Первоначально Delphi устанавливает свойства формы в значения по умолчанию.
Изменить свойства формы можно в процессе проектирования (в Инспекторе объектов)
или во время выполнения приложения. Динамическое изменение свойств
осуществляется программно, путём внесения в исходный текст программы
соответствующих операторов.
При работе с формой на уровне исходного
кода можно получить доступ к свойствам, которые отсутствуют в Инспекторе
объектов.
Цель контрольной работы: изучение свойств, событий и
методов формы, а также разработка ряда примеров работы с формой.
1. Общая характеристика формы.
Основная форма – это окно будущей программы (рис.1). Здесь можно
располагать визуальные компоненты в любом виде и порядке.
Рисунок 1. Основная форма
2. Основные свойства формы.
ActiveControl - Указывает на компонент, который должен
быть активным по умолчанию.
Align - Выравнивание компонента. Любой компонент
может быть выровнен по одной из сторон родительского компонента. Этому свойству
можно присвоить следующие значения:
alNone – нет выравнивания.
alBottom – выравнивание по нижнему краю.
alLeft
- выравнивание по левому краю.
AlRight
- выравнивание по правому краю.
AlTop
- выравнивание по верхнему краю.
Компоненты выравниваются относительно формы, а форма выравнивается
относительно окна.
AlphaBlend - Тип свойства – логический. Свойство
формы.
Означает, имеет ли форма прозрачность. Если это свойство равно true,
то окно будет прозрачным. Степень прозрачности задаётся через свойство
AlphaBlendValue. ВНИМАНИЕ!!! Прозрачность работает не на всех системах.
AlphaBlendValue - Тип свойства – целое число. Степень
прозрачности формы. Здесь можно задавать числовое значение степени прозрачности
от 0 до 255. Если поставишь 0, то форма будет абсолютно прозрачной. 255
означает полную непрозрачность. Чтобы сделать форму полупрозрачной, нужно
выставить какое-нибудь промежуточное значение (можно 127).
Anchors - Это свойство есть и у формы и у
компонентов. Оно показывает, как происходит закрепление к родительскому
объекту. Это свойство раскрывающееся. Если ты щелкнешь по квадрату слева от
имени свойства, то раскроется список из четырёх дополнительных свойств:
akLeft
– прикреплять левый край (по умолчанию true).
akTop
– прикреплять верхний край (по умолчанию true).
akRight
– прикреплять правый край (по умолчанию flase).
akBottom
– прикреплять нижний край (по умолчанию false).
По
умолчанию прикрепление происходит по левому и верхнему краю.
AutoScroll - Тип свойства – логический. Будет ли
форма автоматически производить скроллинг, или нет.
AutoSize - Тип свойства – логический. Должны ли
компоненты на форме автоматически корректировать размеры.
BorderIcons - Свойство определяющее, какие кнопки
должны присутствовать у окна (рис.2).
Это свойство раскрывающееся. Если ты щелкнешь по квадрату слева от
имени свойства, то раскроется список из четырёх свойств:
·
biSystemMenu – показать меню (иконка слева в строке
заголовка окна) и другие кнопки заголовка окна.
·
biMinimize – кнопка минимизации окна.
·
biMaximize – кнопка максимизации окна.
Рисунок 2.
Определение свойства BorderIcons
·
biHelp – кнопка помощи.
BorderStyle – Свойство формы. Отвечает за вид оборки
окна. Это свойство может принимать следующие значения.
·
bsSizeable – установлено по умолчанию. Стандартное
окно, с нормальной оборкой, которое может изменять свои размеры.
·
bsDialog – окно выглядит в виде диалога.
·
bsNone – окно вообще без оборки.
·
bsSingle – На первый взгляд это простое окно, а
если попробовать изменить его размеры, то можно получить облом. Это окно с
фиксированным размером и изменять его мышкой нельзя. Изменить размер можно
только кнопкой Maximize.
·
bsSizeToolWin – окно с тонкой оборкой. Особенно это
заметно в заголовке окна.
·
bsToolWindow – я не буду приводить скрин этого окна,
потому что он ничем не отличается от предыдущего. Единственная разница – у
этого окна нельзя изменять размеры окна.
BorderWidth – ширина оборки окна. Пока что все окна,
которые мы рассматривали, имели ширину оборки равную нулю.
Caption – это строковое свойство, которое
отвечает за заголовок окна. Мы уже использовали его, когда писали программу
«Hello World».
ClientHeight – это свойство в виде целого
числа показывает высоту клиентской области окна. Это высота без учёта ширины
оборки и системного меню, только рабочая область.
ClientWidth - это свойство в виде целого числа
показывает ширину клиентской области окна. Это ширина без учёта ширины оборки и
системного меню, только рабочая область.
Color – цвет клиентской области окна.
В списке выбора есть все системные цвета, которые мы можем
выбрать. Но если ты хочешь использовать какой-то специфичный цвет, то можешь
дважды щёлкнуть по этому параметру, и перед тобой откроется стандартное окно
выбора цвета:
Constraints – в этом свойстве содержатся
максимальные значения размеров окна.
MaxHeight – максимальная высота окна.
MaxWidth – максимальная ширина окна.
MinHeight – минимальная высота окна.
MinWidth – минимальная ширина окна.
Если установить эти значения, то окно нельзя будет растянуть
больше максимального размера и уменьшить меньше минимального.
Ctl3D – Тип свойства – логический. Оно указывает -
показывать окно/компонент в псевдо 3D плоскости или нет. Этот параметр остался
ещё от Windows 3.1, когда он действительно имел смысл. Сейчас даже если
отключить 3D, окно сильно не изменится. Поэтому про это свойство можно забыть.
Cursor – это свойство отвечает за курсор,
который будет отображаться при наведении мышкой на форму/компонент.
DockSite - Тип свойства –
логический. Указывает, можно ли на форму/компонент бросать другие компоненты с
помощью Drag&Drop. Это свойство создаёт эффект, который мы могли наблюдать
в MS Office, когда панели инструментов можно отрывать от формы и прикреплять
обратно. Вот это свойство как раз и разрешает прикреплять компоненты.
DragKind – вид перетаскивания объекта при
Drag&Drop. Здесь доступны два варианта:
·
dkDrag – стандартный Drag&Drop при котором
объект остаётся на месте.
·
dkDock – перетаскивать сам объект. Этот
параметр следует выбрать, если нужно чтобы компонент мог прикрепляться к другим
компонентам или форме.
DragMode – режим Drag&Drop. Здесь доступны
два варианта:
·
dmManual – ручной режим. При таком режиме мы сами
должны запускать перетаскивание объекта.
·
dmAutomatic – режим Draq&Drop будет включатся
автоматически, если пользователь начал тащить мышкой компонент. При этом не
нужно писать дополнительный код, как при ручном режиме.
Enabled – Тип свойства – логический. Доступность
компонента. Если это свойство равно true, то пользователь может работать с этим
компонентом. Иначе компонент недоступен и окрашен серым цветом (рис.3).
Рисунок 3. Установка свойства Enabled
Font – шрифт используемый при выводе текста на форме.
Если дважды щёлкнешь по этой строке, то появится стандартное окно Windows
выбора шрифта (рис.4):
Рисунок 4. Окно шрифт
FormStyle - Стиль формы. Здесь доступны для выбора
следующие варианты
·
fsNormal – нормальное окно.
·
fsMDIForm – Окно является родительским для MDI
окон. Если вспомнить старый Office, то там внутри основного окна можно было
перемещать другие окна. Это окна относятся к классу MDI – мультидокументные
окна. Хотя Microsoft не рекомендует использовать MDI окна и вроде как сама
отказалась от их использования, а в Windows 2000 консоль MMC выполнена именно
так (рис.5):
Рисунок 5. Окно консоли
·
fsMDIChild – окно является
дочерним MDI окном. fsMDIForm – создаёт
главное окно, а fsMDIChild создаёт дочернее, то есть то
окно, которое будет внутри главного.
ВНИМАНИЕ!!! – главное окно не может быть такого
типа.
fsStayOnTop – Окно с этим параметром будет
находиться всегда поверх остальных.
Height – Тип свойства – целое число, высота
окна.
Hint – текст подсказки, который будет появляться в строке
состояния при наведении мышкой на форму/компонент.
HorzScrollBar – параметры горизонтальной полосы
прокрутки.
Icon – иконка отображающаяся в заголовке окна. Если
дважды щёлкнуть по этому свойству, то появится окно загрузки иконки (рис.6).
Рисунок 6. Окно загрузки иконки
В этом окне есть следующие кнопки:
·
Load – загрузить иконку из файла.
·
Save – сохранить иконку в файл.
·
Copy – копировать иконку в буфер обмена.
·
Paste – вставить иконку из буфер обмена.
·
Clear – очистить текущую иконку.
Left – Тип свойства – целое число, левая позиция окна.
Menu – меню, которое используется в главном окне.
Name – имя формы/компонента. Какое имя мы здесь введём,
так и будет называться объект, отвечающий за эту форму/компонент (только в
начале добавится буква T).
Старайтесь давать формам/компонентам понятные имена. Так легче
будет понять, для чего они предназначены. Удобней будет работать с компонентом,
если у него имя будет ExitButton или NewFileButton, а не просто Button1 и
Button2.
ParentFont – Тип свойства – логический. Если это
свойство равно true, то для вывода текста будет использоваться тот же шрифт,
что и у родительского объекта. Иначе используется тот, что укажем мы.
Position – Позиция окна при старте приложения.
Здесь доступны следующие варианты:
- poDefault
–
Windows сам будет решать, где расположить окно и какие будут его размеры.
- poDefaultPosOnly
-
Windows сам будет решать только где расположить окно, а размеры его будут
такими, какими установим в свойствах.
- poDefaultSizeOnly
-
Windows будет решать только какими будут размеры окна, а позиция будет
такая, какую укажем в свойствах.
- poDesigned
–
И размер, и позиция будут такими, какими мы укажем в свойствах.
- poDesktopCenter
–
окно будет располагаться по центру рабочего стола.
- poMainFormCenter
–
окно будет располагаться по центру основной формы.
- poOwnerFormCenter
–
окно будет располагаться по окна владельца. То есть того окна, которое
вызвало это.
- poScreenCenter
-
окно будет располагаться по центру экрана.
ShowHint – Тип свойства – логический. Оно
показывает - нужно ли показывать подсказки.
Tag – это свойство имеет тип – целое число. Оно ни на
что не влияет и мы можем его использовать в своих целях.
Top – Тип свойства – целое число, верхняя позиция окна.
TransparentColor – Тип свойства – логический. Является ли
форма или компонент прозрачным. В отличии от AlphaBlend, эта прозрачность работает
всегда. Зато нельзя сделать полупрозрачные формы и компоненты.
TransparentColorValue - прозрачный цвет.
VertScrollBar – Вертикальная полоса прокрутки. Она
имеет те же параметры, что и горизонтальная и мы рассмотрим её отдельно.
Visible - Тип свойства – логический. Если оно
равно true, то форма/компонент видимые. Иначе форма/компонент невидим.
Width - Тип свойства – целое число. Ширина окна.
WindowState – состояние окна после запуска. Тебе
доступны следующие параметры:
·
wsNormal – окно показывается в нормальном
состоянии.
·
wsMaximized - окно показывается максимизированным.
·
wsMinimized - окно показывается минимизированным.
3. Основные методы и события формы.
Событие OnCreate происходит при создании формы. В
обработчике этого события обычно устанавливают начальные значения для свойств
формы и помещённых на неё компонентов, запрашивают у Windows необходимые ресурсы
и выполняют другие действия, которые следует совершить до вывода формы на
экран.
Событие OnShow происходит после того, как форма была
создана, но перед тем, как она становится видимой.
Событие OnActivate происходит, когда пользователь
переключается на форму, например при щелчке по форме мышью. Событие
OnDeactivate наступает, когда форма теряет активность.
Событие OnHide происходит перед тем, как форма
становится невидимой.
Событие OnCloseQuery наступает при попытке закрыть
форму. Действие задаётся пользователем (кнопка Close) или программно (вызван
метод Close). В обработчик события передаётся булевский
параметр CanClose, разрешающий или запрещающий действительное закрытие формы.
Событие OnClose происходит после OnCloseQuery,
непосредственно перед закрытием формы.
Событие OnDestroy происходит при разрушении формы.
Обработчик этого события освобождает ресурсы и выполняет заданные действия до
того, как форма будет разрушена.
4. Создание, сохранение и открытия проекта.
При старте Delphi автоматически создается новый
проект. Это сделано для удобства. Если необходимо создать новый проект, не
перегружая Delphi, просто нужно выполнить команду меню File|New Application. В
результате старый проект будет закрыт, а вместо него создан новый. В новый
проект Delphi всегда помещает чистую форму.
В процессе разработки приложения вы добавляете на
форму компоненты, пишете обработчики событий, добавляете в проект дочерние
формы, в общем, проектируете приложение. Когда что-то уже сделано, имеет смысл
сохранить проект. Для этого необходимо выполнить команду главного меню
File|Save All. Среда запросит сначала имя для программного модуля с формой, а
затем имя для проекта (кстати, вы уже сохраняли файл в первой главе). Если файл
с введенным именем уже есть на диске, Delphi скажет вам об этом и попросит
подтвердить перезапись файла или ввести другое имя.
Если вдруг понадобится заменить имя проекта на другое,
воспользуйтесь командой меню File|Save Project As.... Если же нужно заменить
имя модуля, воспользуйтесь командой File|Save As.... Операции эти ентарны и не
требуют дальнейших пояснений.
Для открытия в Delphi ранее сохраненного на диске
проекта достаточно выполнить команду главного меню File|0pen.... На экране
появится окно диалога, где вы должны указать или выбрать из представленного
списка каталог и имя загружаемого проекта (с расширением DPR).
C загруженным проектом можно делать что угодно —
исправить, сохранить, компилировать, выполнить.
ОКНО PROJECT MANAGER
При создании более или менее сложного приложения
программист всегда должен знать, на какой стадии разработки он находится, иметь
представление о составе проекта, уметь быстро активизировать нужный файл,
добавить какой-либо новый файл или удалить ненужный, установить параметры
проекта и т. д. Для этого в Delphi имеется окно Project Manager (так называемый
Менеджер Проекта). Фактически это визуальный инструмент для редактирования
главного файла проекта. Он вызывается из меню визуальной среды командой
View|Project Manager. После выбора этой команды на экране появится окно со
списком форм и программных модулей, составляющих проект (рис.7).
Рисунок 7. Окно менеджера проектов
Окно Менеджера Проекта имеет панель инструментов с
шестью кнопками. Их назначение показано на рис.
Отображает диалоговое окно Project Options для
установки параметров проекта (см. ниже).
Синхронизирует содержимое окна Менеджера Проекта с
исходным текстом DPR-файла.
НАСТРОЙКА ПАРАМЕТРОВ ПРОЕКТА В ОКНЕ PROJECT OPTIONS
Установить параметры проекта можно тремя способами:
• вызвать диалоговое окно Project Options и выставить
значения в списке опций;
• присвоить значения директивам в файле опций проекта
(DOF-файл);
• задать нужные директивы компилятора непосредственно
в исходном тексте программы.
Какой способ выбрать ~ зависит от конкретной задачи.
Как вам удобно, так и делайте. По нашему мнению, установить значения параметров
проще всего с помощью диалогового окна Project Options. Для его вызова выберите
в меню команду Project|0ptions или щелкните на соответствующей кнопке в окне
Менеджера Проекта. На экране появится диалоговое окно, вам останется лишь
установить в нем нужное значение параметров. Диалоговое окно состоит из
нескольких страниц, на них очень много параметров, поэтому мы рассмотрим только
те, которые используются наиболее часто.
На странице Forms можно задать главную форму
приложения (Main form) и в списке Auto-create forms указать формы, которые
будут создаваться одновременно с главной формой (рис. 8).
Рисунок 8. Окно Project Options
На странице Application задаются название (Title) и
значок (Icon) приложения, которые будут отображаться в среде Windows на Панели
Задач. Здесь же задается имя файла справочника (Help file), который будет
вызываться автоматически при нажатии клавиши F1.
На странице Compiler задаются параметры компилятора.
Наиболее интересными из них являются параметры Show hints и Show warnings.
Включив их, вы будете получать от компилятора интеллектуальные сообщения и
предупреждения (рис. 9).
Рисунок 9. Окно Project Options
На странице Linker задаются параметры компоновщика.
Здесь следует обратить внимание на параметр Include TDW debug info, управляющий
размещением в результирующем ЕХЕ-файле информации для внешнего отладчика Turbo
Debugger (он не поставляется в комплекте с Delphi) (рис. 10).
Рисунок 10. Окно Project Options
На странице Directories/Conditionals можно задать
каталог выхода (Output directory), в котором будет размещен результирующий
ЕХЕ-файл, маршруты (Search path), где следует искать исходные файлы модулей,
условные объявления (Conditional defines) для директивы компилятора $IFDEF
(рис. 11).
Когда все параметры проекта установлены, можно
приступать к его компиляции.
Рисунок 10. Окно Project Options
КОМПИЛЯЦИЯ И СБОРКА ПРОЕКТА
Компиляция может выполняться на любой стадии
разработки проекта.
Для выполнения компиляции достаточно выполнить команду
меню Project | Compile или нажать комбинацию клавиш Ctrl+ F9. При этом
компилируются все исходные модули, содержимое которых изменялось после
последней компиляции. В результате для каждого программного модуля создается
файл с расширением DCU (сокр. от Delphi Compiled Unit). Затем Delphi
компилирует главный файл проекта и компонует (т.е. собирает) из DCU-модулей
выполняемый ЕХЕ-файл. Имя ЕХЕ-файла совпадает с именем файла проекта. К
сведению профессионалов заметим, что интеллектуальный компоновщик Delphi
выбрасывает из ЕХЕ-файла весь неиспользуемый программный код, поэтому не стоит
волноваться по поводу лишних объектов, процедур и функций, которые могут
содержаться в подключенных модулях.
Кроме обычной компиляции вы еще можете выполнить
тотальную компиляцию. Последняя обеспечивает компиляцию абсолютно всех
программных модулей проекта, для которых доступны исходные тексты. При этом не
важно, вносились в них изменения после предыдущей компиляции или нет. Тотальная
компиляция проекта выполняется с помощью команды главного меню Project | Build
All. В результате тоже формируется ЕХЕ-файл, но времени на его получение
тратится немного больше.
ЗАПУСК ГОТОВОГО ПРИЛОЖЕНИЯ
Когда после множества компиляций вы исправите все
ошибки, можно будет посмотреть на результат вашего самоотверженного труда. Для
этого надо выполнить созданное приложение с помощью команды меню Run | Run или
клавиши F9. Перед выполнением будет автоматически повторен процесс компиляции
(если в проект вносились изменения) и после его успешного завершения приложение
запустится на выполнение. В результате вы увидите на экране его главную форму.
5. Примеры работы с компонентом Label.
Пример 1. Необходимо создать программу, в которой при нажатии
на кнопку «Уменьшить размер» размер формы уменьшался, а при нажатии на кнопку
«Восстановить размеры» размеры формы восстанавливались (рис. 11).
Рисунок 11. Внешний вид формы
Листинг.
implementation
{$R *.dfm}
//Щелчок по кнопке "Уменьшить размер"
procedure
TForm1.Button1Click(Sender: TObject);
begin
Form1.Width:=round(Form1.Width*0.9);
Form1.Height:=round(Form1.Height*0.9);
end;
procedure
TForm1.FormCreate(Sender: TObject);
begin
iWidth:=Form1.Width;
iHeight:=Form1.Height;
end;
//Кнопка
"Восстановить размеры"
procedure
TForm1.Button2Click(Sender: TObject);
begin
Form1.Width:=iwidth;
Form1.Height:=iheight;
end;
end.
Пример 2. Написать программу, которая в строке имени формы выводит координаты
курсора мыши на форме (рис. 12).
Рисунок 11. Фрагмент работы приложения.
Листинг.
implementation
{$R
*.dfm}
procedure
TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Form1.Caption:=IntToStr(X)+':'+IntToStr(Y)
end;
end.
Список используемых источников.
1. Архангельский А.Я. «Приемы
программирования в Delphi».: Издательство «Бином-Пресс» 2006г. -944 стр. –ISBN
5-9518-0145-1
2. С.И. Бобровский «Delphi 7 Учебный курс».:
Издательство «Питер» 2004. - 736 с. – ISBN 5-8046-0086-9
3.Г.В. Галисеев «Компоненты в Delphi 7».:
Издательство «Вильямс» 2004г. - 624стр. –ISBN 5-8459-0555-9
4. А. Шкрыль «Delphi.Народные советы».:
Издательство BHV-СПБ 2007г. – 400стр. – ISBN 5-9775-0047-5
5. Культин Н.Б. «Основы программирования в
Delphi 7».: Издательство BHV –
СПБ. 2008г. - 480 с. –ISBN
978-5-9775-0235-1
6. Культин Н.Б. Программирование на Object
Pascal в Delphi 5.Самоучитель.:Издательство BHV-СПБ. - 464стр. –ISBN
5-8206-0079-7
7. Лабзина Т.А. Алгоритмические языки и
программирование Юнита 5. Издательство НОУ СГУ, 1999.
8. Е.Марков «Программирование в Delphi
7».Издательство BHV-СПБ. 2003г. -784стр. –ISBN 5-94157-116-X
9. В.Кадлец «Delphi.Книга
рецептов.Практические примеры, трюки и секреты».: Издательство «Наука и
техника». 2006г. – 384стр. – ISBN 80-251-0017-0
10. Фаронов В.В. «Delphi 2005. Разработка
приложений для баз данных и Интернета».: Издательство «Питер». 2006г. – 608стр.
– ISBN 5-469-01191-7
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.