Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
3-20880
First_May
2002-09-16 13:57
2002.10.07
Oracle


14-21260
France
2002-09-13 09:31
2002.10.07
Подскажите хорошую компоненту


3-20897
lww
2002-09-16 09:46
2002.10.07
Программное восстановление индекса БД dBase


7-21280
gaga7
2002-07-25 20:45
2002.10.07
Панель задачь


3-20906
tormozzz
2002-09-16 15:41
2002.10.07
ADO





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский