спадкування форм

спадкування форм

Кілька філософське питання.

У Java можна створити об'єкт - форму і створити від неї кілька спадкоємців. Дуже зручно. Створив форму з кнопкою і зав'язаною на неї функціональністю. Створив її спадкоємця в якому додається Edit і ще одного спадкоємця, в якому додається ComboBox. Якщо потрібно змінити функціональність пов'язану з кнопкою - міняємо відповідні методи в предка і всі зміни "відображаються" на спадкоємців.

Як ви в даному випадку вступаєте до Delphi.


Є репозитарій об'єктів - не те. Форми створені на основі сховища об'єктів після створення вже ніяк не прив'язані до "шаблоном в репозитарії" і зміна шаблону вже ніяк не впливає на форми створені на його основі.

Frame - вже ближче, може навіть це і є той варіант - ще не зрозумів до кінця.

Щодо Frame. Frame можна створити тільки на основі іншого Frame (вставивши інший Frame в новий). Але ніяк нельзясоздать новий Frame на основі форми. Для цього форму треба перетворити в Frame і тоді. будь ласка.

> Є репозитарій об'єктів - не те.
А якщо спробувати поставити "Inherited"?

І потім, від форми можна успадковувати, як від будь-якого об'єкта,
без жодного сховища, тільки тоді можна буде
редагувати нащадка в дизайнера.

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

Що є дуже великим мінусом. Крім того, не поміщати ж кожну форму в репозитарій.

Не потрібно нічого поміщати в репозиторій!
Спадкування форм в 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.

А якщо я хочу зробити базову форму для БУДЬ-ЯКОГО проекту?
Ось для цього і потрібен репозиторій.

> Що є дуже великим мінусом.

Якщо не ставити галочку inherited.

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

Навіщо? У репозиторій поміщаються "глобальні" базові форми, яких багато не буває. А візуальне спадкування в межах одного проекту, як зауважив kaif, і так є.

а як щодо published св-в.

Нормально, якщо форму грамотно зареєструвати. Або скористатися готовим експертом CFPack від Сергія Орлика.

Схожі статті