WithHorzScrollBar do

Begin

Margin:=25;

Increment:=10;

Button1.Left:=0;

end;

end;

procedureTForm1.Button1Click(Sender: TObject);

begin

Button1.Left := Button1.Left + 25;

Form1.Caption := IntToStr(HorzScrollBar.Range);

end;

Обратите внимание, что значение свойства Margin назначается в момент создания формы.

Создание, показ и уничтожение формы

 

По умолчанию при старте программы все подключенные к проекту формы создаются автоматически. Первой на свет появляется главная форма проекта, а затем все остальные согласно очередности, указанной программистом.

Для того чтобы изменить очередность создания форм, выберите пункт меню Project → Options и на вкладке Forms диалогового окна

Project Options (рис. 9.3) расставь те формы в списке Autocreate forms в надлежащем порядке. Более того, реализована возможность отказа от автоматического создания формы. Для этого достаточно перевести форму в разряд доступных, т. е. из левого списка переместить ее в список Available forms. Однако прежде чем обращаться к такой форме, программист должен ее создать. Раз мы заговорили о создании формы, то первое, что стоит обсудить, так это ее конструктор:

 

constructorCreate(AOwner: TComponent);

 

Вызов метода Create() полезен при создании форм, входящих в список Available forms. Допустим, что форма Form2 нашего проекта создается вручную. Тогда листинг программы будет выглядеть следующим образом:

varForm2:TForm2;

Begin

if notAssigned(Form2) then// проверка на существование формы

Begin

Form2:=TForm2.Create(Application);

Form2.Show; // вывод формы на экран

end;

end;

При ссылке одного модуля на другой не забудьте добавить в строку usesимя нового модуля. Другой вариант: выберите пункт меню File Ж Use unit (Alt+F11) и в списке модулей найдите нужный модуль.

Сразу отметим существование альтернативного конструктора формы:

constructorCreateNew(AOwner: TComponent; Dummy: Integer = 0); virtual;

Основным достоинством конструктора CreateNew() считается возможность создать новый экземпляр формы без использования файла ресурсов формы .dfm. Для отображения формы на экране монитора обычно применяют метод:

procedureShow;

 

Такой способ вывода формы на экран называется немодальным. В этом случае пользователь получает право свободно переключаться между окнами

приложения. Для вызова формы в модальном режиме используется метод:

functionShowModal: Integer;

 

Модальная форма отличается строптивым нравом. Она отображается поверх

всех открытых окон. Более того, пользователь не сможет получить доступ

к другим окнам проекта, пока не будет закрыта модальная форма.

Для передачи результата модальной форме на ее поверхности обычно размещают кнопки класса TBitBtn (см. главу 8 «Стандартные компоненты»).

Закрываясь, модальная форма возвращает целочисленное значение, называемое модальным результатом. Это не что иное, как решение пользователя, нажавшего ту или иную кнопку.

typeTModalResult = Low(Integer)..High(Integer);

 

Возможные значения модального результата представлены в табл. 9.2.

 

Таблица 9.2. Возможные значения TModalResult

Константа Значение Описание
mrNone Значение по умолчанию - None
mrOk idOk Пользователь нажал кнопку OK.
mrCancel idCancel Пользователь нажал кнопку CANCEL.
mrAbort idAbort Пользователь нажал кнопку ABORT.
mrRetry idRetry Пользователь нажал кнопку RETRY
mrIgnore idIgnore Пользователь нажал кнопку IGNORE.
mrYes idYes Пользователь нажал кнопку YES.
mrNo idNo Пользователь нажал кнопку NO.
mrAll MrNo+1 Используется для определения последней константы.

Анализируя модальный результат закрывающейся формы, программист получает возможность направлять поведение программы в определенное русло:

iffrmSelect.ShowModal=mrOK then

Begin

{операторы для результата mrOK}

end else{операторы для результата,отличного от mrOK};

 

Результат модальной операции заносится в свойство формы:

propertyModalResult: TModalResult;

 

По умолчанию это свойство установлено в 0 (константа mrNone). Присвоение

свойству ModalResult ненулевого значения приводит к вызову метода закрытия формы, и в качестве результата метода ShowModal() возвращается значение этого свойства. Отмечу, что столь серьезный метод для показа формы, как ShowModal(), применим далеко не всегда. Например, в случаях, когда вы считаете возможным допустить пользователя к работе с несколькими формами одновременно, показ формы целесообразнее осуществлять при помощи метода Show(). Использование метода Show() является аналогом присвоения значения true свойству Visible той же формы.

Мы обсудили создание и показ форм, а теперь рассмотрим методы их сокрытия и уничтожения. Простейшим способом спрятать (не уничтожая) форму может стать присвоение свойству Visible значения false. Точно такого же результата можно достигнуть при помощи процедуры:

procedureHide;

 

Для того чтобы уничтожить экземпляр формы максимально деликатно, рекомендую применять метод:

 

procedureRelease;

 

Это ближайший соратник методов Free() и Destroy(), добивающийся тех же результатов: он очищает память компьютера от бренных останков формы, но, в отличие от последних, делает это с некоторым уважением – дожидается завершения обработки событий, инициированных этой формой или ее компонентами.

 

Обработка событий

 

Как и любой оконный элемент управления, форма способна реагировать на стандартные события системы. Кроме того, форма может похвастаться рядом своих собственных обработчиков событий, объявленных в основном в TCustomForm.

 








Дата добавления: 2016-03-15; просмотров: 435;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.