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

Вниз

Клонирование объекта   Найти похожие ветки 

 
NewDelpher ©   (2004-09-23 15:39) [0]

Я создал объект Object1, заполнил его поля, свойства.
Как мне получить его точную копию в виде объекта Qbject2?


 
TUser ©   (2004-09-23 15:43) [1]

Create
Assign


 
NewDelpher ©   (2004-09-23 15:52) [2]

Не понял, Assign вроде определен в потомках TComponent, а у меня свой класс, который не является наследником TComponent.
Как быть в этом случае?


 
Sandman25 ©   (2004-09-23 15:54) [3]

Написать свой Assign.
Или function Clone: TYourClass


 
Defunct ©   (2004-09-23 15:55) [4]

Перекопировать все поля вручную, сделать процедуру Assign в которой будет осуществляться копирование полей


 
NewDelpher ©   (2004-09-23 15:56) [5]


> Sandman25 ©   (23.09.04 15:54) [3]
> Написать свой Assign.
> Или function Clone: TYourClass


Неужели готовых методов нет?


 
Sandman25 ©   (2004-09-23 15:57) [6]

[5] NewDelpher ©   (23.09.04 15:56)

Если посмотреть описание TObject, то видно, что нет.


 
Defunct ©   (2004-09-23 16:03) [7]

> Неужели готовых методов нет?

Непонял, класс-то ваш, в борланде ведь не телепаты чтобы знать все ваши поля?


 
NewDelpher ©   (2004-09-23 16:05) [8]


> Defunct ©   (23.09.04 16:03) [7]
> > Неужели готовых методов нет?
>
> Непонял, класс-то ваш, в борланде ведь не телепаты чтобы
> знать все ваши поля?


Ну и что? Если области адресного пространства скопировать?


 
Sandman25 ©   (2004-09-23 16:05) [9]

[7] Defunct ©   (23.09.04 16:03)

Технически проблемы нет ИМХО. InstanceSize известен, только опасность с типами с управляемым временем жизни.


 
Defunct ©   (2004-09-23 16:06) [10]

> Если области адресного пространства скопировать?

Копируйте, если вам нужны лишние глюки


 
Erik1 ©   (2004-09-23 16:06) [11]

Еще похакерить можно, создаеш новый объект и дальше химичиш с памятю. Но этот мазахозм на любителя.


 
Erik1 ©   (2004-09-23 16:06) [12]

Еще похакерить можно, создаеш новый объект и дальше химичиш с памятю. Но этот мазахизм на любителя.


 
NewDelpher ©   (2004-09-23 16:12) [13]

Ну ладно, уговорили. Не буду копировать области АП.


 
Amoeba ©   (2004-09-23 16:33) [14]

Assign определен в потомках не TComponent, а TPersistent


 
Defunct ©   (2004-09-23 16:45) [15]

Amoeba ©   (23.09.04 16:33) [14]

Какая разница где Assign определен. Его реализация все равно для каждого класса пишется отдельно.


 
Digitman ©   (2004-09-23 16:53) [16]


> у меня свой класс, который не является наследником TComponent.


переделай свой класс как наследник TPersistent и не мучайся - получишь готовый Assign-механизм, останется только перекрыть AssignTo-метод в своем наследнике



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

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

Наверх




Память: 0.5 MB
Время: 0.043 c
3-1094727068
Still Swamp
2004-09-09 14:51
2004.10.10
ADO + MSSQL


1-1096282504
M-Alex
2004-09-27 14:55
2004.10.10
Панель


1-1095775737
hgd
2004-09-21 18:08
2004.10.10
Как залить Bitmap одним цветом?


14-1095630126
123
2004-09-20 01:42
2004.10.10
Автомобили.


1-1096316565
][ncognito
2004-09-28 00:22
2004.10.10
Форма "Прыгает" не в тему!