Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > метод assign


Автор: DCoder 25.6.2007, 13:40
Как работать с методом assign? Если я вызову метод assign одной кнопки, а в параметре передам вторую кнопку, то, как я понимаю, значения всех полей второй должны присвоится соответстующим полям первой? Если так, то почему возникает ошибка "Connot assign a TButton to a TButton"?

Автор: Alexeis 25.6.2007, 13:54
DCoder значит для него не реализовали, но можно вот так
Код

procedure TForm1.Button2Click(Sender: TObject);
var
  mem : TMemoryStream;
begin
  RegisterClass(TButton);
  mem := TMemoryStream.Create;
  mem.WriteComponent(Button1);
  Button1.Name := 'OldButton1';
  mem.Position := 0;
  mem.ReadComponent(Button2);
  mem.Free;

  Button1.Left := Button1.Left + 100;
end;

Автор: DCoder 25.6.2007, 14:16
Спасибо. 
И вот вопрос напоследок: а зачем здесь RegisterClass?

Автор: Alexeis 25.6.2007, 14:19
  Без регистрации класса не работает сериализация классов. 

Автор: DCoder 25.6.2007, 14:42
Странно... а у меня работает. Вот в справке фраза:
Цитата

Form classes and component classes that are referenced in a form declaration (instance variables) are automatically registered


Это не значит, что классы форм и компонентов, на которые ссылается объявление формы, автоматически регистрируются?

Автор: Alexeis 25.6.2007, 15:31
Цитата(DCoder @  25.6.2007,  14:42 Найти цитируемый пост)
Это не значит, что классы форм и компонентов, на которые ссылается объявление формы, автоматически регистрируются? 

  Да, скорее всего.

Автор: DCoder 25.6.2007, 15:34
Ещё раз спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)