Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
delphi.pdf
Скачиваний:
188
Добавлен:
24.02.2016
Размер:
6.84 Mб
Скачать

9.2.5. Текстовая надпись

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

Следуя традиции, напишем название программы большими жирными буквами, а название средства разработки — обычным мелким шрифтом. Для этого воспользуемся компонентом Label, который находится в палитре компонентов на вкладке Standard.

Рисунок 9.8. Компонент Label

Характерные свойства компонента Label кратко описаны в таблице 9.4.

Свойство

Align

Alignment

AutoSize

Caption

FocusControl

Описание

Способ выравнивания в пределах содержащего компонента.

Выравнивание текста в пределах компонента: taLeftJustify — прижат к левой границе, taRightJustify — прижат к правой границе, taCenter — центрирован.

Если равно значению True, то размеры компонента автоматически подгоняются по ширине и высоте текста.

Текст надписи. С помощью символа & в тексте может быть задана “горячая” клавиша.

Компонент формы, получающий фокус ввода при нажатии “горячей” клавиши.

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

комбинации с Alt как “горячая” клавиша.

Transparent

Если равно значению True, то фон надписи является прозрачным. Прозрачный фон

полезен при наложении надписи на рисунок.

 

WordWrap

Если равно значению True, то работает перенос слов.

 

Таблица 9.4. Важнейшие свойства компонента Label

Компонент Label отображает нередактируемый текст, хранящийся в свойстве Caption. Текст выравнивается в пределах компонента одним из трех способов: по левому краю, по правому краю или по центру. Способ выравнивания определяется свойством Alignment. Если текст надписи

433

слишком велик, можно организовать его вывод в несколько строк (с переносом слов). Для этого достаточно установить свойство WordWrap в значение True. Еще одна удобная возможность — автоматическая подгонка размеров компонента по ширине и высоте текста. Она контролируется свойством AutoSize и по умолчанию включена.

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

С помощью компонента Label часто создаются подсказки к другим компонентам, в частности к полям ввода. При этом свойство Caption содержит не только текст, но и “горячую” клавишу, при выборе которой активизируется связанный с надписью компонент. Активизируемый компонент указывается в свойстве FocusControl.

Шаг 9. Вспомним, что компонент Label понадобился нам для того, чтобы сделать необходимые надписи в окне About. Опустите в форму первую надпись справа от изображения и установите ее свойства следующим образом:

WordWrap = True

Caption = Picture Viewer

Font Color = clNavy

Font Name = Times New Roman

Font Size = 20

Font Style = [fsBold]

Рисунок 9.9. Надпись выполнена с помощью компонента Label

Шаг 10. После этого поместите в форму еще один компонент Label с

текстом "Developed in Delphi" в свойстве Caption.

434

9.2.6. Рельефная канавка

Окно диалога почти готово, но для полного ажура не хватает одной мелочи

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

Рисунок 9.10. Компонент Bevel

Шаг 11. Поместите в форму компонент Bevel, придайте ему нужные размеры и положение, после чего установите свойство Shape в значение bsFrame.

Рисунок 9.11. Компонент Bevel в форме

9.2.7. Рельефная панель

Рельефные канавки удобно создавать с помощью компонента Bevel. Однако компонент Bevel не может быть контейнером для других компонентов, а следовательно, перемещение рамки не вызывает перемещение компонентов, находящихся внутри нее. Если нужна не просто рамка, а контейнер с рамкой, то пользуются рельефной панелью — компонентом Panel (вкладка Standard панели инструментов).

Рисунок 9.12. Компонент Panel

Отличительные свойства компонента Panel сведены в таблицу 9.5.

435

Свойство

Align

BevelInner

BevelOuter

BevelWidth

BorderWidth

BorderStyle

Caption

DockSite

FullRepaint

Locked

UseDockManager

OnCanResize

Описание

Способ выравнивания панели в пределах владельца.

Внутренний скос рельефной рамки: bvNone — скос отсутствует, bvLowered — скос внутрь, bvRaised — скос наружу; bvSpace — скос заменяется отступом.

Внешний скос рельефной рамки: bvNone — скос отсутствует, bvLowered — скос внутрь, bvRaised — скос наружу; bvSpace — скос заменяется отступом.

Ширина скосов рельефной рамки.

Расстояние в пикселях между внутренним и внешним скосами. Определяет, имеет ли панель рамку.

Текст на панели.

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

Свойство сохранено для совместимости с предыдущими версиями библиотеки VCL. Оно не влияет на способ перерисовки компонента.

Если равно False, то OLE-серверу разрешено заменить панель на свою панель инструментов. Если равно True и панель выравнена по какой-нибудь стороне формы, то она остается нетронутой при активизации OLE-сервера по месту.

Включает режим автоматического размещения стыкуемых компонентов на панели. Компоненты стыкуются методом деления панели по горизонтали и вертикали. Если свойство равно значению False, то программист должен сам позаботиться о размерах и местоположении стыкуемых компонентов, определив обработчики событий OnGetSiteInfo и OnDockDrop.

Происходит при попытке изменить размеры панели. Запрос на изменение размеров может исходить от пользователя. Устанавливая значение параметра Resize, обработчик события OnCanResize может разрешить или запретить действительное изменение размеров панели.

Происходит при изменении размеров панели и позволяет на лету изменять ее OnConstrainedResize минимальные и максимальные размеры.

OnGetSiteInfo

Происходит, когда у компонента запрашивается место для стыковки.

 

Таблица 9.5. Важнейшие свойства компонента Panel

Шаг 12. Уберите компонент Bevel из формы и поместите на его место компонент Panel. Откорректируйте его положение и размеры и установите свойства следующим образом (рисунок 9.13):

Caption = <пусто>

BevelInner = bvRaised

BevelOuter = bvLowered

436

Рисунок 9.13. Компонент Panel заменил в форме компонент Bevel

Шаг 13. С помощью окна Object TreeView перенесите компоненты Image1,

Label1 и Label2 на панель Panel1 (рисунок 9.14).

Рисунок 9.14. Компоненты Image1, Label1 и Label2 переносятся на панель Panel1

Теперь рельефная рамка заменена рельефной панелью и при ее перемещении перемещаются все надписи и рисунок (рисунок 9.15).

Рисунок 9.15. Компоненты Image1, Label1 и Label2 — теперь на панели Panel1

437

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]