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

Глава 6 Программирование приложений с графическим интерфейсом

____________________________________________________________________

A_Grafic_Curve.Enabled:= true;

end;

end;

initialization

{$I unit1.lrs}

end.

6.3.11.4. Создание приложений с изменяемыми размерами окон

Для этих целей используются компоненты TPanel и TSplitter. Компо-

нент TPanel – панель является контейнером, на котором могут размещаться любые другие компоненты. Компонент позволяет создавать на форме отдель-

ные независимые области и группировать в них функционально связанные ин-

терфейсные элементы.

У большинства компонентов, в том числе и у TPanel имеется свойство

Align – выравнивание. Свойство может принимать следующие значения:

alNone – выравнивание отсутствует;

alLeft – компонент занимает левую часть клиентской области компонен-

та-контейнера (на панель можно помещать сколько угодно других компонентов

TPanel)или формы;

alRight – компонент занимает правую часть клиентской области компо-

нента-контейнера;

alTop – компонент занимает верхнюю часть клиентской области компонен-

та-контейнера;

alBottom – компонент занимает нижнюю часть клиентской области ком-

понента-контейнера;

alClient – компонент занимает всю свободную клиентскую область ком-

понента-контейнера;

alCustom – выравнивание определяется родительским компонентом.

761

6.3 Визуальное программирование в среде Lazarus

____________________________________________________________________

Поместите на пустую форму компонент TPanel и поэкспериментируйте с различными значениями свойства Align компонента. При этом учитывайте следующие моменты. Согласно стандартам графического интерфейса в окне программы первой должна идти строка меню. Если вы поместите на форму компонент TMainMenu и создадите хотя бы один пункт меню, то даже если вы присвоите свойству Align TPanel значение alClient, панель не займет всю область формы. Т.е. меню не будет закрыто панелью!

Значения alTop и alBottom имеют больший приоритет, чем alLeft и alRight. Исходя из сказанного, при проектировании внешнего вида, напри-

мер Проводника, можно создать примерно такой каркас приложения, рис.

6.107.

Рис. 6.107. Пример проектирования внешнего вида приложения

Сначала с помощью TMainMenu создаем хотя бы один пункт меню. Затем помещаем компонент TStatusBar – строку состояния. Компонент имеет по умолчанию свойство Align= alBottom. Помещаем на форму три компонен-

та TPanel. Первой панели присваиваем значение Align= alTop, в нем мы будем размещать панель инструментов, второй панели присваиваем значение

Align= alLeft, сюда мы поместим компонент TTreeView, причем свойст-

762

Глава 6 Программирование приложений с графическим интерфейсом

____________________________________________________________________

ву Align этого компонента присваиваем значение alClient. Третьей панели присвоим значение Align= alClient, на него мы поместим компонент

TListView и его свойству Align присвоим значение alClient.

Теперь, если пользователь нажмет на кнопку раскрытия окна во весь экран,

все компоненты будут пропорционально изменять свои размеры и ваше прило-

жение в этом случае сохранит "приличный" вид.

Практически у всех компонентов имеется также свойство Anchors с по-

мощью которого осуществляется привязка компонента к родительскому ком-

поненту. Обычно Lazarus в зависимости от значения свойства Align компо-

нента автоматически подставляет наиболее подходящие значения и свойству

Anchors.

Группа свойств TPanel позволяет управлять вешним видом панели. Это такие свойства как BevelInner, BevelOuter, BevelWidth,

BorderStyle, BorderWidth. Просто пробуйте задавать различные значения этим свойствам и вы все сами поймете.

Часто требуется изменять размеры не окна приложения в целом, а размеры компонентов в окне. Например, изменить размеры левого окна Проводника

(компонент TTreeView). Причем в данном случае пользователь может менять только ширину окна. Поэтому правильнее говорить об изменении границ пане-

лей, на которых расположены компоненты. Для этого применяется компонент

TSplitter – разделитель (вкладка Additional). Чтобы вставить раздели-

тель между двумя панелями, необходимо сначала поместить первую панель, за-

дать стиль выравнивания (свойство Align). Для нашего случая задаем для пер-

вой панели Align= alLeft. Затем помещаем на форму TSplitter. По умолчанию он имеет свойство Align= alLeft. Поэтому разделитель автома-

тически прижмется к панели. Теперь помещаем на форму вторую панель и за-

даем Align= alClient. Все, теперь во время работы приложения пользова-

тель может перемещать границы панелей, ухватившись мышью за разделитель.

763

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