BERDAFLEX Software Systems
Главная > Delphi > Работа с фреймами

Работа с фреймами

История переиздания
Издание 1.0 Сентябрь 2003 г. Сергей Бердачук

Продолжая тему создания заготовок, упрощающих процесс разработки программного обеспечения, хочется обратить Ваше внимание на фреймы. В отличие от внешнего модуля, который мы рассматривали в предыдущей статье: "Работа с модальными формами", доступ к фреймам осуществляется через палитру компонентов. Данное свойство упрощает процесс визуальной разработки. А последующие изменения кода фрейма автоматически переносятся на объекты, в которых данный фрейм используется.

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

Создадим новый проект в Delphi. Новый фрейм создается вызовом пункта меню File-New, и в выбранной палитре объектов выбором Frame. В созданный фрейм добавим панель-контейнер TPanel и две кнопки TBitBtn.

Рисунок 1. Заготовка фрейма

Заготовка фрейма


Для реализации эффекта выравнивания создадим метод на событие Resize панели-контейнера.

procedure TFrameBtns.pnlBtnsResize(Sender: TObject);
begin
  bbtnOk.Left:=Self.Width-10-bbtnOk.Width-bbtnCancel.Width;
  bbtnCancel.Left:=Self.Width-5-bbtnCancel.Width; 
end;

Чтобы обеспечить возможность включения данного фрейма в другие проекты сохраним его в каталог общего доступа (в моем случае это $(DELPHI)\Projects\Common). Для добавления ранее созданных фреймов в другие проекты предназначен пункт меню Project-Add to project. А для добавления фрейма в форму или контейнер нужно выбрать первый элемент в стандартной палитре компонентов показанный на рисунке.

Рисунок 2. Кнопка добавления фрейма в палитре компонент Delphi

Кнопка добавления фрейма в палитре компонент Delphi


После выбора элемента-контейнера Вам будет предложен список доступных фреймов. При выборе фрейма его элементы переносятся в контейнер. Код фрейма скрыт от программиста, что разгружает общий код приложения, и позволяет сконцентрироваться на решении основной задачи проекта.

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

Рисунок 3. Пример использования фрейма

Пример использования фрейма


И напоследок «ложка дегтя». Хочется обратить Ваше внимание, что увлекаться фреймами особенно не стоит. По крайней мере, для сложных конструкций. Код фрейма должен быть тщательно продуман, отлажен и не должен изменяться после создания. Так как любые изменения в коде фрейма влияют на все проекты его использующие. А это может привести к неприятным сюрпризам. Исходный код демонстрационного проекта Вы можете найти по адресу: http://www.berdaflex.com/ru/delphi/downloads/testframe.zip

Rambler's Top100 Рейтинг@Mail.ru