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

Вниз

Автоматическое создание класса.   Найти похожие ветки 

 
Paladin ©   (2003-01-30 18:32) [0]

Условия:
Каждый класс представляет собой некую сущность предметной области.
Иногда возникает ситуация, когда на форме или другом контейнере должно быть несколько сущностей, и каждая сущность должна иметь свои отличные или дополнительные методы и свойства.
Выход: создать компонентов(классов) столько, сколько нужно различных типов сущностей, и накидать их экземпляров в нужный контейнер.
Если эта задача, встречается так же часто, как и задача создать TEdit, то такой подход слишком не удобен, это не гибко и хочется автоматизировать, так же как это сделано с TEdit.
Стандартный механизм:
При помещении компонента на форму происходит добавление к форме еще одного свойства.
Например помещая компонент TEdit, на форму добавляется свойство Edit1 :TEdit.
Хочется получить:
Кроме описанных событий, хочется чтобы, рядом с самой формой создавался пустой класс, например,
TEdit1 = class(TEdit) и соответственно на форму добавлялось свойство Edit1 :TEdit1.
Вопрос:
Можно ли средствами Delphi такого добиться и если можно, то как?
Пример задачи:
Имеются таблицы базы данных, рассматриваемый компонент представляет собой одну строку таблицы базы данных, т.е. сущность определенной структуры, соответствующую структуре таблицы.
Т.к. это у нас объектно-ориентированная модель, то хочется воспользоваться ее преимуществами и к каждому классу, представляющему строку, прилепить свойственные ей методы обработки.
Такое можно делать во многих серьезных системах, например Axapta.


 
gsu ©   (2003-01-30 18:37) [1]

>> Имеются таблицы базы данных, рассматриваемый компонент представляет собой >> одну строку таблицы базы данных
1. описываешь класс, компонент и его св-ва в бд
2. создаешь объекты в своем интерпретаторе
3. работаешь

Так ?


 
Paladin ©   (2003-01-31 11:58) [2]

Привет.
Да, со своим интерпретатором можно, но довольно сложно, т.к. по хорошему, для этого нужно среду писать.
Но я имел в виду создание класса при помощи Delphi IDE.
Можно ли переопределить процесс добавления компонента на форму,
т.е. кроме добавления свойства в форму, еще и создвавлся заголовок класса в том же модуле.
Есть же в Delphi всякие мастера форм, редакторы свойств и т.д.
Мне кажется, ничего революционного, просто если это возможно, то я не знаю как это сделать.




 
ZeroDivide ©   (2003-01-31 15:41) [3]

Вопрос очень интересный правда я его все равно наверное не так понял. Уважаемый Paladin прочитайте про термины Object Pascal... Вместо такого количества текста можно было бы просто написать наверное:

"Можно ли управлять добавлением текста в PAS,DFM при помещении на форму нового компонента ?"

Вы это имели в виду?

Мастер форм: Пользователь отвечает на нек. вопросы и в соответствии с ответами генерятся и открываются файлы. И что тут не понятно?

Вопрос 2 если пас уже открыт. Если вы попытаетесь заменить пас на onCreate компонента, то IDE скажет что файл изменился и предложит его перегрузить. Если вас так устроит то пожалуйста...


 
Юрий Зотов ©   (2003-01-31 20:34) [4]

> Кроме описанных событий, хочется чтобы, рядом с самой формой
> создавался пустой класс, например, TEdit1 = class(TEdit) и
> соответственно на форму добавлялось свойство Edit1 :TEdit1.

> Можно ли средствами Delphi такого добиться и если можно, то как?

Можно. Для этого нужно написать свой эксперт IDE.

См. все по теме OTAPI. Начните с исходников в папке ..\ToolsAPI и со статьи на "Королевстве Delphi".



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

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

Наверх




Память: 0.48 MB
Время: 0.027 c
1-28837
anatolyk
2003-02-02 20:38
2003.02.10
ActionList


1-28840
Гость Андрей
2003-02-02 20:45
2003.02.10
DLL и командная строка


1-28847
Zirus
2003-02-03 05:21
2003.02.10
Колесо


1-28741
Alpine
2003-01-31 23:33
2003.02.10
Как и с помощью чего лучше строить графики (векторы,треугольники)


4-29161
BillyJeans
2002-12-27 10:47
2003.02.10
как отловить завершение сеанса или просто перезагрузку?