Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2014, 12:14   #1
Дmmm
Пользователь
 
Регистрация: 26.02.2013
Сообщений: 66
По умолчанию Assign Timer

Вылетает EConvertError при исполнении инструкции типа:
procedure TMyType.Assign(Source: TPersistent);
.........
Timer1.Assign(TMyType(Source).Timer 1);

Где
TMyType=class(TPersistent)
........
Timer1: TTimer;
........
procedure Assign(Source: TPersistent); override;
........
end;

Какие-то проблемы с методом TTimer.Assign?
Дmmm вне форума Ответить с цитированием
Старый 27.10.2014, 12:28   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А зачем Assign() делать? Просто присвоить обычным "равно" не годится?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.10.2014, 13:08   #3
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Кстати, вот:
Цитата:
If no overridden Assign method can handle the assignment of properties from Source, the method implemented in TPersistent calls the source object’s AssignTo method. This allows the source object to handle the assignment. If the Source object is nil (Delphi) or NULL (C++), Assign raises an EConvertError exception.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 27.10.2014 в 13:14.
min@y™ вне форума Ответить с цитированием
Старый 27.10.2014, 13:36   #4
Дmmm
Пользователь
 
Регистрация: 26.02.2013
Сообщений: 66
Печаль

Цитата:
Сообщение от Stilet Посмотреть сообщение
А зачем Assign() делать? Просто присвоить обычным "равно" не годится?
что именно присвоить? сам объект, как известно, присвоить нельзя, это ссылка
Дmmm вне форума Ответить с цитированием
Старый 27.10.2014, 13:47   #5
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
сам объект, как известно, присвоить нельзя, это ссылка
Это смотря чему и где присваивать!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 27.10.2014, 14:05   #6
Дmmm
Пользователь
 
Регистрация: 26.02.2013
Сообщений: 66
По умолчанию

Эт точно. исходя из темы, что можно присвоить в объекте типа TTimer?
Дmmm вне форума Ответить с цитированием
Старый 27.10.2014, 14:07   #7
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,786
По умолчанию

Метод Assign работает не по волшебству, а лишь исполняет то, что в нем написано. Конкретными наследниками TPersistent принимается лишь ограниченный набор типов, все остальные дают исключение.

Есть железная уверенность, что TTimer ничего не знает о вашем типе, так что исключение -- это нормально. Пересмотрите задачу. Можете с нами поделиться, если хотите.
Vapaamies вне форума Ответить с цитированием
Старый 27.10.2014, 14:10   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
что можно присвоить в объекте типа TTimer?
что значит "в объекте"?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 27.10.2014, 14:17   #9
Дmmm
Пользователь
 
Регистрация: 26.02.2013
Сообщений: 66
По умолчанию

"в объекте" - значит значения полей, свойства. в конкретном случае, судя по описанию, это
In TTimer (Конкретном наследнике TPersistent )
Enabled
Interval
разве метод Assign не их должен переприсваивать?
и что он еще "должен знать"?
Дmmm вне форума Ответить с цитированием
Старый 27.10.2014, 14:28   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Я всё жду, когда ты залезешь в исходник и посмотришь.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 27.10.2014 в 14:53.
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Cannot assign to a read-only property LLIALLIJIbIK Общие вопросы Delphi 3 25.04.2013 07:07
Не выполняется метод $objResponse->assign pokimich PHP 0 31.10.2012 20:20
Почему-то не работает Assign в Listview Ecosasha Общие вопросы Delphi 1 12.06.2010 19:04
Чем заменить assign pasha_1994 Помощь студентам 6 21.12.2009 12:29