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

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

Содержание

Введение. 3

1 Алгоритм. Разработка алгоритмов. Блок-схемы.. 3

2 Console Application. 5

3 Операторы языка Delphi 6

3.1 Оператор присваивания. 6

3.2 Оператор ввода-вывода. 6

3.3 Составные операторы.. 7

3.4 Условный оператор. 7

3.5 Цикл с предусловием.. 10

3.6 Цикл с постусловием.. 10

3.7 Цикл с параметром (счетчик) 12

3.8 Массивы.. 14

3.9 Строки. 20

3.10 Записи. 22

3.11 Множества. 23

4 Отладчик программы Debugger 24

5 Среда Delphi 26

6 Создание интерфейса приложения. 26

7 Подпрограммы.. 26

7.1 Процедуры.. 26

7.2 Функции. 26

7.3 Параметры и аргументы.. 26

8 Особенности объектно-ориентированного программирования. 26

9 Работа с кнопкой. 26

10 Работа с текстом.. 26

10.1 Работа с надписью.. 26

10.2 Функции преобразования числа в строку и строки в число. 26

10.3 Работа в однострочном редакторе (Edit, LabeledEdit) 26

10.4 Работа с многострочным редактором Memo. 26

11 Диалоги, сообщения. 26

11.1 Процедура ShowMessage. 26

11.2 Процедура MessageDlg. 26

11.3 Процедура InputBox. 26

11.4 Процедура InputQuery. 26

11.5 Стандартные диалоги. 26

12 Работа с компонентом StringGrid. 26

13 Построение графика функции. 26

14 Файлы.. 26

15 Работа со списками и переключателями. 26

15.1 Компонент ChekBox. 26

15.2 Компонент RadioButton. 26

16 Исключительные ситуации. 26

17 Работа с несколькими модулями. 26

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: