Потомок TForm в Delphi IDE
От: Аноним  
Дата: 17.05.07 05:04
Оценка:
Можно ли использовать компонент-потомок TForm вместо формы по умолчанию в Delphi IDE, чтобы можно было визуально редактировать ее содержимое?
Re: Потомок TForm в Delphi IDE
От: ak_miass Россия  
Дата: 17.05.07 06:03
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Можно ли использовать компонент-потомок TForm вместо формы по умолчанию в Delphi IDE, чтобы можно было визуально редактировать ее содержимое?


Т.е. отнаследоваться от другой уже готовой формы?
File -> New -> [Имя проекта]
Выбираешь нужную форму -> IDE создаёт наследника.
Модуль формы родителя должен быть подключен к проекту.
Re[2]: Потомок TForm в Delphi IDE
От: bsigr  
Дата: 17.05.07 09:42
Оценка:
Здравствуйте, ak_miass, Вы писали:

_>Т.е. отнаследоваться от другой уже готовой формы?


Нет, я имел в виду новый компонент. Т.е. TForm с измененным конструктором и другими методами.

Или, может быть, есть возможность созать форму, накидать компоненты, а потом уже изменить ее класс с TForm на свой?
Re[3]: Потомок TForm в Delphi IDE
От: Аноним  
Дата: 17.05.07 09:53
Оценка:
B>Нет, я имел в виду новый компонент. Т.е. TForm с измененным конструктором и другими методами.

B>Или, может быть, есть возможность созать форму, накидать компоненты, а потом уже изменить ее класс с TForm на свой?


Конструктор менять нельзя — при чтении из dfm всегда будет зваться тот который Create(aOwner: TComponent). А обработчики событий свои можно — нужно рисовать IDE эксперта.
См. например в Delphi7 как устроен XPAppWiz.
Re[3]: Потомок TForm в Delphi IDE
От: wallaby  
Дата: 17.05.07 10:07
Оценка:
Здравствуйте, bsigr, Вы писали:

B>Или, может быть, есть возможность созать форму, накидать компоненты, а потом уже изменить ее класс с TForm на свой?


Есть. Каждая форма в любом случае имеет свой класс.
Для того, чтобы отнаследоваться не от TForm выбираем (в Turbo Delphi)
File/New/Other/Delphi Projects/Inheritable Items

Для того, чтобы сделать форму доступной для наследования в других проектах щёлкаем на ней правой кнопокой и выбираем Add to Repository.
---
The optimist proclaims that we live in the best of all possible worlds; and the pessimist fears this is true
Re: Потомок TForm в Delphi IDE
От: Danchik Украина  
Дата: 17.05.07 11:09
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Можно ли использовать компонент-потомок TForm вместо формы по умолчанию в Delphi IDE, чтобы можно было визуально редактировать ее содержимое?


Можна: OTA — Forms with Published Properties Visible in the Object Inspector
Но я б на вашем месте "фигней" не страдал
Re[2]: Потомок TForm в Delphi IDE
От: bsigr  
Дата: 21.05.07 05:01
Оценка:
Здравствуйте, Danchik, Вы писали:


А>>Можно ли использовать компонент-потомок TForm вместо формы по умолчанию в Delphi IDE, чтобы можно было визуально редактировать ее содержимое?


D>Но я б на вашем месте "фигней" не страдал


Я бы не страдал, если бы знал правильное решение.

У меня есть класс, образованный от TForm, но переписан конструктор, процедура отрисовки и еще кое-что. Но сама форма, без компонентов на ней мне не нужна. Создавать же компоненты динамически несколько трудоемко. Вот я и пытаюсь узнать, как в таких случаях поступают более опытные товарищи
Re[3]: Потомок TForm в Delphi IDE
От: Аноним  
Дата: 21.05.07 05:39
Оценка:
Здравствуйте, bsigr, Вы писали:

B>Здравствуйте, Danchik, Вы писали:



А>>>Можно ли использовать компонент-потомок TForm вместо формы по умолчанию в Delphi IDE, чтобы можно было визуально редактировать ее содержимое?


D>>Но я б на вашем месте "фигней" не страдал


B>Я бы не страдал, если бы знал правильное решение.


B>У меня есть класс, образованный от TForm, но переписан конструктор, процедура отрисовки и еще кое-что. Но сама форма, без компонентов на ней мне не нужна. Создавать же компоненты динамически несколько трудоемко. Вот я и пытаюсь узнать, как в таких случаях поступают более опытные товарищи


Включить форму в проект, а дальше свои новые формы делать File\New\Other... там закладка с именем проекта и на ней выбирать эту форму.
Re[3]: Потомок TForm в Delphi IDE
От: wallaby  
Дата: 21.05.07 08:23
Оценка:
Здравствуйте, bsigr, Вы писали:

B>У меня есть класс, образованный от TForm, но переписан конструктор, процедура отрисовки и еще кое-что. Но сама форма, без компонентов на ней мне не нужна. Создавать же компоненты динамически несколько трудоемко. Вот я и пытаюсь узнать, как в таких случаях поступают более опытные товарищи


Откажитесь от переписывания конструктора и переопределения методов. Запихните нужную функциональность в обработчики (OnCreate, OnPaint, etc). Создайте в проекте новую форму, установите для неё свойство Name на какое нравится (имя класса формы будет T+Name). Поскольку форма будет использоваться только для наследования, зайдите в Project/Options и удалите её из списка Autocreate Forms. Накидайте на форму нужные компоненты, напишите нужные обработчики и наследуйтесь от неё на здоровье. Если нужно наследоваться от этой формы в других проектах, включите её в репозитарий. Постарайтесь этим ограничиться, но знайте о существовании OTA (Open Tools API, см. ссылку Danchik'a).
---
The optimist proclaims that we live in the best of all possible worlds; and the pessimist fears this is true
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.