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

Не работает метод Assign класса TFloatAnimation


d7d1cd

Вопрос

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

  • 0

Попробуйте так: FloatAnimation1 = FloatAnimation2;

В результате этого в FloatAnimation1 скопируются не свойства а указатель на FloatAnination2. По сути я получу два имени одного и того же объекта. А мне надо два одинаковых объекта.

Ссылка на комментарий
  • 0
  • Администраторы

Добрый день,

 

У всех аниматоров метод Assign не реализован, как по-моему у всех FireMonkey контролов. Поэтому вы получаете эту ошибку.

 

Решение

  1. Копируйте вручную.
  2. Либо напишите хелпер.

P.S. Добавил реквест на реализацию метода Assign

Изменено пользователем Brovin Yaroslav
Ссылка на комментарий
  • 0

Это ясно. Непонятно почему этот метод включен в класс и почему справка говорит нам о том, что метод можно использовать для копирования...

Спасибо за ответ и за реквест!

Ссылка на комментарий
  • 0
  • Администраторы

Метод Assign идет от класса TPersistent. Это базовая функциональность этого класса. Каждый наследник по идеи должен перекрыть AssignTo и реализовать копирование своих данных в переданный объект. Если же реализации нету, то выбрасывается исключение, которое вы и получили.

procedure TPersistent.Assign(Source: TPersistent);
begin
  if Source <> nil then Source.AssignTo(Self) else AssignError(nil);
end;

А в справку это попало видимо по наследованию. То есть есть общее описание этого метода для TPersistent и оно автоматически посасывается в каждом наследнике.

Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

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