Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Клонирование объекта [D5, D7, Win95/98, Win2k]


NewDelpher ©   (2004-09-23 15:39:00) 

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


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


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


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


Defunct   (2004-09-23 16:45:00) [2]

Amoeba ©   (23.09.04 16:33) [14]

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


Amoeba   (2004-09-23 16:33:00) [3]

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


NewDelpher   (2004-09-23 16:12:00) [4]

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


Defunct   (2004-09-23 16:06:00) [5]

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

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


Erik1   (2004-09-23 16:06:00) [6]

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


Erik1   (2004-09-23 16:06:00) [7]

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


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


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


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


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

[7] Defunct ©   (23.09.04 16:03)

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


Defunct   (2004-09-23 16:03:00) [10]

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

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


Sandman25   (2004-09-23 15:57:00) [11]

[5] NewDelpher ©   (23.09.04 15:56)

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


NewDelpher   (2004-09-23 15:56:00) [12]


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


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


Defunct   (2004-09-23 15:55:00) [13]

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


Sandman25   (2004-09-23 15:54:00) [14]

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


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

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


TUser   (2004-09-23 15:43:00) [16]

Create
Assign


Наверх

Титульная страница Поиск, карта сайта Написать письмо