Рефераты. Разработка игровой программы Морской бой p>1.2.3. Компонент TPanel

TPanel - управляющий элемент, похожий на TGroupBox, используется в декоративных целях. Чтобы использовать TPanel, просто поместите его на форму и затем положите другие компоненты на него. Теперь при перемещении
TPanel будут передвигаться и эти компоненты. TPanel используется также для создания панели инструментов и окна статуса.

Этот компонент доступен из модуля EXTCTRLS, и находится на странице
Палитры компонентов Standard.

Этот компонент — является несущей конструкцией для размещения других элементов управления. В отличие от простой рамки (TBevel) панель сама является оконным элементом управления и родителем для всех размещенных на ней компонентов. Часто ее используют для создания панелей инструментов, строк состояния и т. п.

За внешнее оформление панели отвечают свойства:

(Pb) property Bevel Inner: TPanelBevel;

(Рb) property BevelOuter: TPanelBevel;

TPanelBevel = (bvNone, bvLowered, bvRaised) ;

(Pb) property BevelWidth: TBevelWidth;

TBevelWidth = 1..Maxint;

(Pb) property BorderWidth: TBorderWidth;

TBorderWidth = 0..Maxint ;

На границах панели размещаются две специальные окаймляющие рамки
(bevels): Bevellnner и BevelOuter. При помощи комбинации белого и серого цветов они имитируют трехмерность — приподнятость (bvRaised) или утоп- ленность (bvLowered). Обе рамки имеют ширину BevelWidth. Наружная —
BevelOuter — расположена прямо по периметру панели, вторая — Bevellnner — внутри на расстоянии BorderWidth от нее. Обе могут быть невидимыми
(bvNone), приподнятыми или утопленными.

Комбинируя сочетания bvLowered/bvRaised, можно создать вокруг панели
"ров" или "вал".

Иллюзию трехмерности может подчеркнуть также стиль обрамления компонента:

(Pb) property BorderStyle: TBorderStyle;

TBorderStyle = bsNone .. bsSingle;

Значение bsSingle означает, что панель будет окаймлена черной линией единичной толщины (по периметру, снаружи от обеих рамок).

Выравнивание текста заголовка панели определяется при помощи свойства:

(Pb) property Alignment: TAlignment;

Свойство (Pb) property Locked: boolean; предназначено для определения способа взаимодействия панели с размещенными на ней объектами OLE. Если оно равно True, последние при активизации сервера OLE "по месту'" не могут заместить панель.

В обработчике события: (Pb) property OnResize: TNotifyEvent; может быть предусмотрена реакция пользователя на изменение размеров панели.

1.2.4. Компонент TBitBtn

TBitBtn - кнопка вроде TButton, однако на ней можно разместить картинку
(glyph). TBitBtn имеет несколько предопределенных типов (bkClose, bkOK и др), при выборе которых кнопка принимает соответствующий вид. Кроме того, нажатие кнопки на модальном окне (Form2.ShowModal) приводит к закрытию окна с соответствующим модальным результатом (Form2.ModalResult).

Этот компонент доступен из модуля BUTTONS, и находится на странице
Палитры компонентов Additional.

Эта кнопка, будучи потомком TButton, может нести на себе пиктограмму и имеет рад дополнительных удобств в использовании. В Delphi уже определены стандартные виды кнопок:

(Pb) property Kind: TBitBtnKind;

TBitBtnKind = (bkCustom, bkOK, bkCancel, bkHelp, bkYes, bkNo, bkClose, bkAbort, bkRetry, bklgnore, bkAll);

Для каждой из них определены: передаваемый форме результат
(ModalResult):

BitBtnModalResults: array[TBitBtnKind] of TModalResult =
(0, mrOk, mrCancel, 0, mrYes, mrNo, 0, mrAbort, mrRetry, mrlgnore, inrAll); а также название и картинки для разных состояний. Достаточно установить значение свойства Kind, и кнопка сразу приобретет нужный вид. Более того, некоторые из видов кнопок при нажатии сразу совершают определенные действия. Так, bkHelp осуществляет инициализацию системы помощи со своим
(или ближайшим ненулевым родительским) контекстом. Кнопка вида bkClose закрывает форму, которой она принадлежит, вызывая ее метод Close.

Кнопка будет отнесена к виду bkCustom, если она:

1. назначена Default, но при этом не принадлежит множеству [bkOk, bkYes];

2. назначена Cancel, но не принадлежит множеству [bkCancel, bkNo];

3. у нее изменена пиктограмма;

4. модальный результат не соответствует определенному для этого вида кнопок.

За внешний вид этой кнопки отвечают свойства, рассмотренные ниже.
Стиль изображения кнопок в зависимости от операционной системы задается свойством:

(Pb) property Style: TButtonStyle;

TButtonStyle = (bsAutoDetect, bsWin31, bsNew);

Стиль bsNew соответствует Windows 95. В любом случае корректным будет применение стиля bsAutoDetect, который сам распознает версию системы.
Пиктограмма кнопки, которая вместе с текстом видна на ее поверхности, определяется свойством:

(Pb) property Glyph: TBitmap;

Для создания эффекта нажатия картинка должна немного изменяться в зависимости от состояния; кроме того, отдельная картинка нужна для неактивного состояния (когда нажатие не воспринимается). В свойстве Glyph должна быть одна битовая карта, но она может содержать картинки сразу для нескольких состояний кнопки (максимум четыре). Они интерпретируются как соответствующие нормальному (отжатому), запрещенному (неактивному), нажатому и утопленному состояниям (последнее применяется только для кнопок
TSpeedButton). Для этого картинки должны быть расположены подряд вплотную по горизонтали. Например, при размере картинок 16х16 нужна объединенная битовая карта 64х16. Если каждая из картинок квадратная и ширина общей картинки нацело делится на высоту, то при присвоении ее свойству Glyph система сможет распознать их и скорректировать количество, определяемое свойством:

(Pb) property NumGlyphs: TNumGlyphs ;

TNumGlyphs = 1..4;

При отрисовке в зависимости от состояния из большой битовой карты будет использована нужная часть.

Три свойства отвечают за расположение текста и картинки на поверхности кнопки:

(Pb) property Layout: TButtonLayout;

Способ выравнивания пиктограммы относительно краев кнопки. Может быть одним из четырех:

TButtonLayout = (biGlyphLeft, biGlyphRight, biGlyphTop, biGlyphBottom);

Расстояние от соответствующего способу выравнивания края кнопки до пиктограммы описывается свойством:

(Pb) property Margin: Integer;

Промежуток между пиктограммой и текстом равен:

(Pb) property Spacing: Integer;

Если свойства Margin, Spacing или оба не заданы (по умолчанию равны
-1), значения этих промежутков выбираются системой. Кнопка также имеет метод Click и свойства Caption, ModalResult, Default и Cancel. Статус
Default получают кнопки видов bkOk, bkYes, a Cancel — кнопки видов bkCancel, bkNo.


1.2.5. Компонент TSpeedButton

TSpeedButton - кнопка для создания панели быстрого доступа к командам
(SpeedBar). Пример - SpeedBar слева от Палитры Компонент в среде Delphi.
Обычно на данную кнопку помещается только картинка (glyph).

Этот компонент доступен из модуля BUTTONS, и находится на странице
Палитры компонентов Additional.

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

(Pb) property Grouplndex: Integer;

Если Grouplndex равен нулю, у кнопки вообще нет фиксации в нажатом состоянии и она не зависит от остальных кнопок, принадлежащих тому же родительскому элементу. Кнопки в группе (то есть с одинаковым ненулевым значением Grouplndex) имеют зависимую фиксацию. Она также зависит от свойства:

(Pb) property AllowAlIUp: Boolean; которое описывает поведение кнопок в группе, а именно: могут ли все кнопки одновременно быть отжаты. Если AllowAlIUp равно False (по умолчанию), нажатую кнопку в группе можно отпустить, лишь нажав другую. Если AllowAlIUp равно True, кнопку можно отпустить повторным нажатием.

Если необходимо фиксировать одну кнопку TSpeedButton, ей нужно присвоить уникальный групповой индекс, а AllowAlIUp установить в True.

Поскольку в группе не могут одновременно находиться кнопки с различным значением этого свойства, при нажатии кнопки и изменении Grouplndex свойство AllowAlIUp "рассылается" (присваивается) остальным кнопкам с тем же значением Grouplndex. В группе не может быть нажато более одной кнопки.
Определяет, нажата ли кнопка, свойство:

(Pb) property Down: Boolean;

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

Текст кнопки определяет свойство Caption. Компонент имеет те же правила и свойства рисования картинки, что и TBitBtn. Они описываются свойствами Glyph, NumGlyphs, Layout, Margin и Spacing.

Для имитации щелчка предусмотрен метод Click. Двойной щелчок для
TSpeedButton возможен только на нажатой кнопке — иначе он интерпретируется как обычный. Описывается свойством:

(Pb) property OnDblClick;

1.2.6. Компонент TImage

TImage - отображает графическое изображение на форме. Воспринимает форматы
BMP, ICO, WMF. Если картинку подключить во время дизайна программы, то она прикомпилируется к EXE файлу.

Этот компонент доступен из модуля EXTCTRLS, и находится на странице
Палитры компонентов Additional.

Этот компонент служит надстройкой над классом TPicture и замыкает всю иерархию графических объектов VCL. Он предназначен для показа на форме изображения: битовой карты (TBitmap), метафайла (TMetafile), значка
(TIcon).

Свойство (Pb) property Picture: TPicture; служит контейнером для графического объекта одного из перечисленных классов.

В качестве канвы используется канва объекта Picture. Graphic — только если поле Graphic ссылается на объект класса TBitmap:

(Pb) property Canvas: TCanvas;

Если это не так, то попытка обращения к свойству вызовет исключительную ситуацию EInvalidOperation, так как рисовать на метафайле или значке нельзя.

Следующие три свойства определяют, как именно Tpicture располагается в рабочей области компонента:

(Pb) property AutoSize: Boolean;
— означает, что размеры компонента настраиваются по размерам содержащегося в нем графического объекта. Устанавливать его в True нужно перед загрузкой изображения из файла или буфера обмена;

(Pb) property Stretch: Boolean;
— если это свойство установлено в True, то изображение "натягивается" на рабочую область, при необходимости уменьшая или увеличивая свои размеры.
Если оно установлено в False, то играет роль следующее свойство;

(Pb) property Center: Boolean;
— если это свойство установлено в True, изображение центрируется в пределах рабочей области. В противном случае — располагается в ее верхнем левом углу.

Страницы: 1, 2, 3, 4



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.