Вход


Главная страница >> Учебный процесс >> Конспекты >> Delphi. Библиотека визуальных компонентов VCL >> Описание компонентов VCL >> Форма и ее свойства >> Форма и ее свойства. Управление дочерними элементами
Переход на главную страницу

Сервер поддерживается
кафедрой информатики и вычислительной техники ГрГУ
тел. +375-(0)152-445-101
E-mail :
kadan@grsu.grodno.by


[Назад]    [Содержание ]    [Вперед]

  


Форма и ее свойства. Управление дочерними элементами


Если вы хотите передать фокус одной из форм проекта, используйте метод этой формы:

procedure SetFocus;

Форма при этом обязана быть видимой и активной (Enabled), иначе создается исключительная ситуация EInvalidOperation.

Два метода отвечают за передачу фокуса между визуальными компонентами в составе формы. Метод

procedure FocusControl(Control: TWinControl);

передает фокус элементу управления Control, а метод

procedure DefocusControl(Control: TWinControl; Removing: Boolean);

отбирает его. Параметр Removing, равный True, означает, что элемент при этом должен передать фокус своему родительскому элементу. Напомним, что для элементов в эти моменты генерируются события OnEnter и OnExit. Имеющий фокус элемент определяется свойством:

(Рb) property ActiveControl: TWinControl;

Оно может принимать значение nil, если фокус имеет сама форма.

В компоненте TForm доступен еще один метод, по предназначению сходный с FocusControl:

function SetFocusedControl(Control: TWinControl): Boolean;

Этот метод вызывается внутри многих компонентов (находящихся вне модуля FORMS) при получении фокуса ввода ? именно поэтому он находится в секции public. Программисту не стоит его использовать, т. к. он не документирован.

Форма относится к компонентам с возможностью прокрутки содержимого клиентской области. К полосам прокрутки можно обратиться как к отдельным объектам с помощью свойств:

(РЬ) property HorzScrollBar;

(Рb) property VertScrollBar;

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

(Pb) property AutoScroll;

установлено в значение True. Следующий метод помещает элемент управления AControl в видимую часть клиентской области:

procedure ScrollInView(AControl: TControl) ;

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

Форма имеет возможность перехватить ввод от клавиатуры, предназначенный имеющему фокус элементу управления. Установка свойства

(РЬ) property KeyPreview: Boolean;

в True означает, что поступающие от клавиатуры сообщения будут сначала поступать форме, и только затем ? элементу. Пример использования этой возможности приведен в разделе "Обработка событий от мыши и клавиатуры".

Немаловажной проблемой является то, как заставить форму и ее элементы выглядеть одинаково при различных режимах работы видеоадаптера. Текущую разрешающую способность в точках на дюйм можно задать при помощи свойства:

(Pb) property PixelsPerInch: Integer;

Вы можете присвоить этому свойству любое значение, превышающее 36, либо 0.

При ненулевом значении этого свойства во время создания форма и все ее элементы масштабируются в некоторой пропорции. Эта пропорция равна отношению числа точек на дюйм на экране в данный момент к этому же числу во время разработки. Если же PixelsPerInch = 0, никакого масштабирования не производится.

Чтобы не изменять PixelsPerInch напрямую, разработчики предусмотрели другое ? обобщающее ? свойство:

(Pb) property Scaled: Boolean;

При установке Scaled в False PixelsPerInch обнуляется, в True ? получает новое значение, равное числу точек на дюйм на экране в текущем видеорежиме.

Нужно учитывать, что если вы хотите сделать приложение, независимое от разрешения экрана, то значение свойства Position у всех его форм должно отличаться от poDesigned ? иначе они будут появляться в разных местах (в том числе и за пределами экрана).

Внешний вид формы и ее составных частей можно отобразить не только на экране. Метод

function GetFormImage: TBitmap;

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

procedure Print ;

Полученное изображение передается объекту TPrinter (см. ниже), при этом его масштабирование производится в соответствии со значением свойства:

(Pb) property PrintScale: TPrintScale;

TPrintScale = (poNone, poProportional, poPrintToFit) ;

poNone ? отсутствует;

poProportional ? производится изменение масштаба в пропорции, равной соотношению точек на дюйм у формы и принтера;

poPrintToFit ? аналогично предыдущему, но осуществляется приведение размера изображения к размеру листа.



[Назад]    [Содержание ]    [Вперед]

  


Для комментария : kadan@grsu.grodno.by

  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017