Секреты Delphi. Работа с фреймами
Секреты Delphi. Работа с фреймамии
Продолжая тему создания заготовок, упрощающих процесс разработки программного обеспечения, хочется обратить ваше внимание на фреймы.
В отличие от внешнего модуля, который мы рассматривали в предыдущей статье (КГ №32 — http://msk.nestor.minsk.by/kg/2003/32/kg33203.html), доступ к фреймам осуществляется через палитру компонентов. Данное свойство упрощает процесс визуальной разработки. А последующие изменения кода фрейма автоматически переносятся на объекты, в которых данный фрейм используется.
Попробуем создать что-нибудь полезное. Первым претендентом на роль фрейма становится блок кода, который приходится часто повторять по ходу создания проекта. Одним из таких участков можно назвать метод выравнивания кнопок диалоговых окон по правому краю.
Создадим новый проект в Delphi. Новый фрейм создается вызовом пункта меню File-New и в выбранной палитре объектов выбором Frame. В созданный фрейм добавим панель-контейнер TPanel и две кнопки TBitBtn.
Для реализации эффекта выравнивания создадим метод на событие Resize панели-контейнера.
procedure TFrameBtns.pnlBtns Resize(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. А для добавления фрейма в форму или контейнер нужно выбрать первый элемент в стандартной палитре компонентов, показанный на рисунке.
После выбора элемента-контейнера вам будет предложен список доступных фреймов. При выборе фрейма его элементы переносятся в контейнер. Код фрейма скрыт от программиста, что разгружает общий код приложения и позволяет сконцентрироваться на решении основной задачи проекта.
Поместив фрейм в ранее созданный проект, мы получили форму, в которой кнопки автоматически выравниваются по правому краю. Данное свойство мы можем использовать многократно и с минимальными усилиями.
И напоследок ложка дегтя. Хочется обратить ваше внимание на то, что увлекаться фреймами особенно не стоит. По крайней мере, для сложных конструкций. Код фрейма должен быть тщательно продуман, отлажен и не должен изменяться после создания, так как любые изменения в коде фрейма влияют на все проекты, его использующие. А это может привести к неприятным сюрпризам. Исходный код демонстрационного проекта вы можете найти по адресу: http://bs_elbis.at.tut.by/downloads/testframe.zip .
Сергей Бердачук, Berdachuk@tochka.by
Продолжая тему создания заготовок, упрощающих процесс разработки программного обеспечения, хочется обратить ваше внимание на фреймы.
В отличие от внешнего модуля, который мы рассматривали в предыдущей статье (КГ №32 — http://msk.nestor.minsk.by/kg/2003/32/kg33203.html), доступ к фреймам осуществляется через палитру компонентов. Данное свойство упрощает процесс визуальной разработки. А последующие изменения кода фрейма автоматически переносятся на объекты, в которых данный фрейм используется.
Попробуем создать что-нибудь полезное. Первым претендентом на роль фрейма становится блок кода, который приходится часто повторять по ходу создания проекта. Одним из таких участков можно назвать метод выравнивания кнопок диалоговых окон по правому краю.
Создадим новый проект в Delphi. Новый фрейм создается вызовом пункта меню File-New и в выбранной палитре объектов выбором Frame. В созданный фрейм добавим панель-контейнер TPanel и две кнопки TBitBtn.
Для реализации эффекта выравнивания создадим метод на событие Resize панели-контейнера.
procedure TFrameBtns.pnlBtns Resize(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. А для добавления фрейма в форму или контейнер нужно выбрать первый элемент в стандартной палитре компонентов, показанный на рисунке.
После выбора элемента-контейнера вам будет предложен список доступных фреймов. При выборе фрейма его элементы переносятся в контейнер. Код фрейма скрыт от программиста, что разгружает общий код приложения и позволяет сконцентрироваться на решении основной задачи проекта.
Поместив фрейм в ранее созданный проект, мы получили форму, в которой кнопки автоматически выравниваются по правому краю. Данное свойство мы можем использовать многократно и с минимальными усилиями.
И напоследок ложка дегтя. Хочется обратить ваше внимание на то, что увлекаться фреймами особенно не стоит. По крайней мере, для сложных конструкций. Код фрейма должен быть тщательно продуман, отлажен и не должен изменяться после создания, так как любые изменения в коде фрейма влияют на все проекты, его использующие. А это может привести к неприятным сюрпризам. Исходный код демонстрационного проекта вы можете найти по адресу: http://bs_elbis.at.tut.by/downloads/testframe.zip .
Сергей Бердачук, Berdachuk@tochka.by
Компьютерная газета. Статья была опубликована в номере 39 за 2003 год в рубрике программирование :: delphi