Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие Delphi.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

18Работа с формой

Форма – основной компонент приложения 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;

Form2.Show;

end;