Перейти к содержанию
Fire Monkey от А до Я
  • 0

Клонирование объекта


antigrav

Вопрос

Здравствуйте!

Пишу алгоритм с параллельными вычислениями. Один из объектов является разделяемым ресурсом и хотелось бы его клонировать. Объект достаточно сложный и использует другие объекты. Возникла идея применения механизма сериализации/десериализации. Примерный код ниже.

function Cloning(RootObject: TComponent): TComponent;
var
  MemStream: TMemoryStream;
begin
  MemStream := TMemoryStream.Create;
  try
    MemStream.WriteComponent(RootObject);
    MemStream.Position := 0;
    Result := MemStream.ReadComponent(RootObject);
  finally
    MemStream.Free;
  end;
end;


Данный код, однако, не дает нужного результата. Исходный компонент RootObject и Result, в итоге, ссылаются на одну и ту же область памяти. Может ли уважаемое сообщество предложить какие-то решения?

Ссылка на комментарий

Рекомендуемые сообщения

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...