Работа с формой
Форма – основной компонент приложения Delphi, на котором могут располагаться другие компоненты.В таблице 10 представлены свойства компонента Form, которые часто используются.
Таблица 10 - Свойства компонента Form
Свойство | Тип /Значение |
BorderIcons | TBorderIcons (Множественный) Определяет вид системного меню: · biSystemMenu – форма имеет системное меню · biMinimize – у формы есть кнопка «Уменьшить» в системном меню · biMaximize - у формы есть кнопка «Увеличить» в системном меню · biHelp – если выбрано значение свойства BorderStyle bsDialog или значение текущего свойства biMinimize или biMaximize установлены False, то в системном меню появляется значок вопроса, нажав на который изменяется вид курсора (становится crHelp) |
BorderStyle | TFormBorderStyle (Перечислимый) Определяет вид формы: · bsDialog – диалоговая форма (не может изменять размер) · bsNone – нет рамки и системного меню (форма не может изменять размер) · bsSingle - форма не может изменять размер · bsSizeable – стандартная форма (по умолчанию) · bsSizeToolWin – как bsSingle, но с уменьшенными значками системного меню) · bsToolWindow – bsSizeable, но с уменьшенными значками системного меню) |
Caption | String Заголовок |
ClientHeight | Integer Высота клиентской зоны формы (зоны без заголовков, полос прокрутки и т.д.) в пикселях |
ClientWidth | Integer Ширина клиентской зоны формы в пикселях |
Color | TColor (Перечислимый) Цвет формы |
Cursor | TCursor (Перечислимый) Изменяет вид курсора |
Font | TFont (Объект) Изменяет шрифт |
Height | Integer Высота формы в пикселях |
Hint | String Подсказка. Будет видна, если свойство ShowHint равно True |
HorzScrollBar | TControlScrollBar (Объект) Определяет вид горизонтальной полосы прокрутки |
Icons | Определяет картинку, которая заменит уменьшенную форму |
Left | Integer Определяет позицию появления формы слева |
Name | Имя переменной. Не путать со свойством Caption! |
Position | TPosition (Перечислимый) Определяет размер и позицию формы: poDesigned - форма появится такой, какой была во время конструирования приложения poDefault – формы будет располагаться согласно разрешению экрана poDefaultPosOnly – размер у формы будет такой, какой определили во время разработки, однако позицию размещения определяет система poDefaultSizeOnly – обратно poDefaultPosOnly poScreenCenter – посередине экрана (влияет на приложение с мультиэкранным выводом) poDesktopCenter - посередине экрана poMainFormCenter – посередине главной формы poOwnerFormCenter – посередине главной формы |
PrintScale | TPrintScale (Перечислимый) Определяет пропорции печати формы poNone – нет требований poProportional – печать пропорционально увиденному на экране poPrintToFit – печать с пропорциями, что и на экране, но с подбором размера на бумагу |
Scaled | Boolean Масштабируемость. Определяет возможность изменения появления формы на другом разрешении экрана |
ShowHint | Boolean Разрешает показывать текст подсказки Hint около курсора |
Tag | Integer Не имеет определенного значения. Используется программистами для собственных нужд |
Top | Integer Определяет в пикселях позицию сверху появления формы |
VertScrollBar | TVertScrollBar (Объект) Определяет вид вертикальной полосы прокрутки |
Visible | Boolean Управляет видимостью формы |
Width | Integer Ширина формы |
WindowState | TWindowState (Перечислимый) Определяет вид формы wsNormal –нормальная wsMinimized – уменьшенная wsMaximized - во весь экран |
КомпонентForm имеется множество методов. Рассмотрим некоторые из них.
Ø OnCreate – создание формы. Можно использовать для установки начальных значений переменным. В данном методе нельзя обращаться к имени формы, т.к. ее еще нет!
Ø OnShow – показ формы. Возникает всегда при обращении к видимости формы. Можно использовать для установки начальных значений переменным.
Ø OnClose – закрытие формы. Можно использовать для освобождения связи переменных и памяти.
Ø OnCloseQuery – обрабатывается перед закрытием формы. Можно написать диалог с пользователем, если требуется подтверждение на закрытие формы. Если выходной параметр (var CanClose: Boolean) не будет равен True, то форма не будет закрыта.
Ø OnPaint – перерисовка изображения на форме
Ø OnResize – метод формы при изменении ее размеров.
Операционная среда Windows(окна) позволяет работать сразу с несколькими формами (окнами), поэтому приложение Delphi может быть многооконным.
Для того, чтобы добавить форму в имеющееся приложения, выберите пункт главного меню Delphi File/New Form. Сохраните модуль новой формы и подключите его к проекту. Работа с новой формой не отличается от работы с главной формой проекта.
Первая форма проекта будет главной (она будет открываться при запуске приложения). Чтобы изменить иерархию форм, откройте окно Options главного меню Delphi. На вкладке Formsможно в списке «Главная форма» (Main form) выбрать другую форму.
Чтобы новая форма была видна в нужном модуле проекта, не забудьте добавить имя модуля новой формы в раздел Uses требуемого модуля.
Если новая форма содержит кнопки BitBtn и установлено свойство ModalResult(свойство ModalResult устанавливается автоматически при установке свойства Kind), то нажатие на любую из них (кроме кнопки Help) приведет к закрытию формы. Форма будет закрыта с модальным результатом, которое соответствует свойству ModalResult (нажата кнопка OK – модальный результат mrOK и т.д.).
Пример 22. Работа с двумя формами. Внешний вид первой формы изображен на рисунке 37. Внешний вид второй формы изображен на рисунке 38.
Рисунок 37 - Первая форма на этапе конструирования
Рисунок 38 - Внешний вид второй формы на этапе конструирования
Для всех кнопок обеих форм установлено только свойство Kind. Логика работы приложения такая: при запуске видна первая форма с заголовком Form1. При нажатии на кнопку Yes открывается вторая форма. Если пользователь нажимает кнопку Yesвторой формы, то она закрывается, а заголовок первой меняется на значение заголовка надписи второй формы (рисунок 39).
Рисунок 39 - Внешний вид первой формы во время работы приложения, если пользователь выбрал кнопку Yes
Если пользователь выбирает кнопку No, то форма также закрывается, но заголовок первой формы будет иметь значение «Пока» (рисунок 40).
Рисунок 40 - Внешний вид первой формы во время работы приложения, если пользователь выбрал кнопку No
Код программы:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if Form2.ShowModal=mrYes then
Form1.Caption:=Form2.Label1.Caption
else Form1.Caption:='Пока';
end;
Пример 23. Добавим пример 20 кнопкой, при нажатии на которую рассчитывается производная функции, результаты в виде графика появляются на другой форме.
Добавьте на форму кнопку (BitBtn3) «Расчет производной». Добавьте в проект новую форму, на которой расположите компонент Chart и кнопку для закрытия формы BitBtn. В раздел uses первого модуля добавьте имя нового модуля. Напишите код нажатия кнопки «Расчет производной»:
procedure TForm1.BitBtn3Click(Sender: TObject);
var
xn,xk,y1,y2,y,h:real;
begin
//ввод параметров расчета xn,xk,h
Form2.Chart1.SeriesList.Series[0].Clear;
Form2.Chart1.Visible:=true;
while xn<=xk do
begin
// расчет производной
y1:=(xn-h)*(xn-h);
y2:=xn*xn;
y:=(y2-y1)/h; //-----------
Form2.Chart1.SeriesList.Series[0].
AddXY(xn,y,'',clRed);
xn:=xn+h;
end;
Дата добавления: 2015-04-10; просмотров: 794;