Материал: Мансуров. Основы программирования в среде Lazarus. 2010

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

____________________________________________________________________

end;

end;

initialization

{$I unit1.lrs}

end.

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

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

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

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

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

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

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

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

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

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

TPanel)или формы;

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

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

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

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

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

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

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

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

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

Поместите на пустую форму компонент TPanel и поэкспериментируйте с

761

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

____________________________________________________________________

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

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

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

6.107.

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

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

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

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

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

762

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

____________________________________________________________________

присвоим значение 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

Послесловие

Как сказали ли бы люди в Древнем Востоке, кувшин моих мыслей показы-

вает дно. К сожалению, нами остались нерассмотренными ряд вопросов. Это, в

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

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

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

приоткрыла окно в большой и прекрасный мир программирования! Пробудила интерес к этой в высшей степени творческой профессии, коей является профес-

сия программиста.

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

тор это неоднократно подчеркивал, для того, чтобы стать хорошим программи-

стом, прежде всего нужны талант и трудолюбие.

Если вы, уважаемый читатель, решили связать свою дальнейшую жизнь с программированием, автор желает вам успехов и удач в этом трудном, терни-

стом, но чрезвычайно интересном пути!

И в заключение, все свои предложения и замечания по содержанию книги направляйте по адресу: mansurov2002@inbox.ru

С уважением, автор.

764

Литература

1. Демидович Б.П., Марон И.А. "Основы вычислительной математики", М.:

"Наука", 1970.

2. Копченова Н.В., Марон И.А. "Вычислительная математика в примерах и за-

дачах", М.: "Наука", 1972.

3. Гутер Р.С., Овчинский Б.В. " Элементы численного анализа и математиче-

ской обработки результатов опыта", М.: "Наука", 1970.

4.Архангельский А.Я. "Программирование в Delphi 7", М.: "Бином", 2003.

5.Иванова Г.С., Ничушкина Т.Н., Пугачев Е.К. "Объектно-ориентированное программирование", М.: Изд-во МГТУ им. Н.Э. Баумана, 2003.

6.Кэнту М. "Delphi 7: Для профессионалов", СПб.: Питер, 2004.

7.Ершов А.П. "Введение в теоретическое программирование", М.: "Наука",

1977.

8.Вирт Н. "Алгоритмы и структуры данных", М.: Мир, 1989.

9.Кнут Д.Э. "Искусство программирования", т.1. "Основные алгоритмы", М.: "Мир", 1976.

10.Кнут Д.Э. "Искусство программирования", т.3. "Сортировка и поиск", М.: "Мир", 1978.

11.Ламуатье Ж.П. "Упражнения по программированию на Фортране-IV", М.:

Мир, 1978.

12. Дж. Бакнелл "Фундаментальные алгоритмы и структуры данных в Delphi",

СПб ДиаСофтЮП, 2003 г.

13.Сайт FreePascal.ru – http://www.freepascal.ru/

14.Форум сообщества ALT Linux – http://forum.altlinux.org/

15.Форум программистов и сисадминов http://www.cyberforum.ru/

16.http://freepascal.org/

17.http://lazarus.freepascal.org/

765

Смотрите также:

11 Горм +
113
14
1433
1511
1632
199
204
2N4264RE
3773