![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Клонирование объекта [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