Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.07;
Скачать: CL | DM;

Вниз

Наследование форм   Найти похожие ветки 

 
Осирис ©   (2002-09-26 12:28) [0]

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

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

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


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

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

Ваше мнение ?


 
Осирис ©   (2002-09-26 12:35) [1]

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


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

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

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



 
Осирис ©   (2002-09-26 12:54) [3]

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

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


 
kaif ©   (2002-09-26 14:40) [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 15:07) [5]

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

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


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

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

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

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

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


 
Guerrillero ©   (2002-09-26 17:31) [6]

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


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

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

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



Страницы: 1 вся ветка

Текущий архив: 2002.10.07;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
7-21280
gaga7
2002-07-25 20:45
2002.10.07
Панель задачь


14-21255
Лана Розанова
2002-09-13 09:58
2002.10.07
Ребята, помогите.


14-21244
spROOT13
2002-09-12 23:05
2002.10.07
Видео


6-21180
Kapusto
2002-08-09 13:11
2002.10.07
Время на Novell-сервере


14-21212
Down
2002-09-10 12:37
2002.10.07
Настройка Оdigо