Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Наследование форм


Осирис ©   (2002-09-26 12:28:00) 

Несколько философский вопрос.

В Java можно создать объект - форму и создать от нее несколько наследников. Очень удобно. Создал форму с кнопкой и завязанной на нее функциональностью. Создал ее наследника в котором добавляется Edit и еще одного наследника, в котором добавляется ComboBox. Если нужно изменить функциональность связанную с кнопкой - меняем соответствующие методы в предке и все изменения "отображаются" на наследниках.

Как вы в данном случае поступаете в Delphi ?


Есть репозитарий объектов - не то. Формы созданные на основе репозитария объектов после создания уже никак не привязаны к "шаблону в репозитарии" и изменение шаблона уже никак не влияет на формы созданные на его основе.

Frame - уже ближе, может даже это и есть тот вариант - еще не понял до конца...

Ваше мнение ?


Юрий Зотов   (2002-09-26 18:21:00) [1]

> Guerrillero © (26.09.02 17:31)
> а как насчет published св-в ???

Нормально, если форму грамотно зарегистрировать. Или воспользоваться готовым экспертом CFPack от Сергея Орлика.


Guerrillero   (2002-09-26 17:31:00) [2]

а как насчет published св-в ???


Юрий Зотов   (2002-09-26 15:07:00) [3]

> kaif © (26.09.02 14:40)
> Не нужно ничего помещать в репозиторий!
> 2.Выбрать закладку с именем проекта.

А если я хочу сделать базовую форму для ЛЮБОГО проекта?
Вот для этого и нужен репозиторий.


> Осирис © (26.09.02 12:54)

> Что является очень большим минусом.

Если не ставить птичку inherited.

> Кроме того, не помещать же каждую форму в репозитарий.

Зачем? В репозиторий помещаются "глобальные" базовые формы, которых много не бывает. А визуальное наследование в пределах одного проекта, как заметил kaif, и так доступно.


kaif   (2002-09-26 14:40:00) [4]

Не нужно ничего помещать в репозиторий!
Наследование форм в Delphi - одна из самых мощных фишек.
От любой формы в составе проекта легко можно создать наследника и редактировать его визуально в IDE.
1.Для этого нужно нажать File|New... (В D6 File|New|Other...)
2.Выбрать закладку с именем проекта.
3.Выбрать форму-предка из списка.
4.Убедиться, что радиокнопка снизу в значении inherited
5.Нажать OK.
-----------------
То же самое, если повозиться, можно сделать руками, создав обычного наследника TForm и затем заменив в тексте определение
Form1 = class(TForm)
на
Form1 = class(TMyForm)
а в ресурсном *.dfm файле руками заменив object на inherited.
--------------------
Но сначала рекомендую первый вариант. А потом рекомендую взглянуть на dfm.


Осирис   (2002-09-26 12:54:00) [5]

>> только тогда нельзя будет редактировать потомка в дизайнере.

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


Старый паскалист   (2002-09-26 12:43:00) [6]

>Есть репозитарий объектов - не то.
А если попробовать поставить "Inherited"?

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


Осирис   (2002-09-26 12:35:00) [7]

Насчет Frame. Frame можно создать только на основе другого Frame(вставив другой Frame в новый). Но никак нельзясоздать новый Frame на основе формы. Для этого форму надо преобразовать в Frame и тогда... .. пожалуйста.


Наверх

Титульная страница Поиск, карта сайта Написать письмо