Форум: "Основная";
Текущий архив: 2002.10.07;
Скачать: [xml.tar.bz2];
ВнизНаследование форм Найти похожие ветки
← →
Осирис (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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c