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

Вниз

Создание нового объекта из данного   Найти похожие ветки 

 
Григорий Поваров   (2003-05-16 16:48) [0]

Есть объект, надо создать новый того же класса. В настоящий момент делается следующим образом, но что-то мне кажется, что это не самый верный способ:


var
NewItem : TNameSpaceItem;
begin
// Item является наследником от TNameSpaceItem
NewItem := Item.ClassType.Create() as TNameSpaceItem;
NewItem.Create();
// ...
end;

Буду благодарен.


 
Skier ©   (2003-05-16 16:51) [1]

>Григорий Поваров
1) RegisterClass(es)
2) GetClass or FindClass


 
Skier ©   (2003-05-16 16:54) [2]

>Григорий Поваров
в твоём случае лучше через метакласс

TNameSpaceItemСlass = class of TNameSpaceItem;


 
Григорий Поваров   (2003-05-16 17:04) [3]

Item является наследником от TNameSpaceItem - их много разных - какой именно я не знаю. Но мне надо создать экземпляр именно того класса, каким является Item, а не какого-то другого пусть тоже наследника от TNameSpaceItem.


 
rounin   (2003-05-16 17:05) [4]

type
TNameSpaceItemСlass = class of TNameSpaceItem;
...

NewItem := TNameSpaceItemClass(Item.ClassType).Create;

Конструктор должен быть виртуальным, введённый в классе
TNameSpaceItem

//NewItem.Create(); - это выкинуть


 
VMcL ©   (2003-05-16 17:11) [5]

Если конструктор виртуальный, то вроде, должно сработать так:


TNameSpaceItemClass = class of TNameSpaceItem;
...
NewItem := TNameSpaceItemClass(Item.ClassType).Create(...);


 
Григорий Поваров   (2003-05-16 17:14) [6]

thnx a lot



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

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

Наверх




Память: 0.47 MB
Время: 0.013 c
3-94719
kostas
2003-05-08 12:26
2003.05.29
Запросы TIBQuery в разных потоках (нитях.TTheard)


3-94671
vantage
2003-05-12 18:12
2003.05.29
получение данных из DataSource в ListBox (не DBListBox)


14-95104
IronHawk
2003-04-07 18:16
2003.05.29
Предложение и принятие заявок на ПЯТУЮ ВСТРЕЧУ МАСТАКОВ в реале!


14-95066
Poma
2003-05-09 14:34
2003.05.29
Компоненты


7-95145
demonyator
2003-03-28 18:30
2003.05.29
Как в XP вместо explorer a загружать свою прогу ?