Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Button1 := Button2; 
:(
    Опции темы
Гость_Vasya
Дата 6.10.2003, 18:36 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Привет!

Преположим, имеется:

Button1, Button2: TButton;

Надо сделать Button1 := Button2 так, чтоб Button1 перенял все свойства Button2. Как?

Спасибо!



  Вверх
December
Дата 6.10.2003, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



В Design-time - правый клик на баттоне - едит - копи (или контрол - копи), потом пасте.
В ран-тайм - не знаю.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
p0s0l
Дата 6.10.2003, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Где-то давно видел код с применением потока, но там вроде не было ничего связанного с именами. А если с именами компонент ничего не делать, то выдаётся ошибка, что компонент с таким именем уже есть...
Поэтому пришлось идти немного в обход:
Код
procedure MakeAssign (Component1, Component2 : TComponent);
var
 ms : TMemoryStream;
 OldName1, OldName2 : string;
begin
 OldName1 := Component1.Name;
 OldName2 := Component2.Name;
 Component1.Name := '';
 ms := TMemoryStream.Create;
 ms.WriteComponent(Component1);
 ms.Seek(0, soFromBeginning);
 TComponent(Component2) := ms.ReadComponent(Component2);
 ms.Free;
 Component1.Name := OldName1;
 Component2.Name := OldName2;
end;

Может можно и легче...

Применять так:
MakeAssign (Button1, Button2); // Button2 возьмёт все свойства у Button1 (кроме Name)



--------------------
С уважением, г-н Посол.
PM   Вверх
var-alex
Дата 7.10.2003, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 7.10.2003
Где: Коломна, MCK

Репутация: 1
Всего: 1




Хренью заниматетесь, товарищи. Все классы в DELPHI, начиная от TPersistent имеют метод assign, который и делает то, что вам нужно. Пишется
Код
Button2.assign(button1)

PM MAIL   Вверх
Гость_Vasya
Дата 7.10.2003, 08:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











2 var-alex

В случае Button - ов Assign не проходит.

  Вверх
var-alex
Дата 7.10.2003, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 7.10.2003
Где: Коломна, MCK

Репутация: 1
Всего: 1



Цитата
2 var-alex

В случае Button - ов Assign не проходит.

Что говорит?? Исключение или просто не работает??
PM MAIL   Вверх
p0s0l
Дата 7.10.2003, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



"Cannot assign TButton to TButton" или что-то в этом роде. Было бы так легко, и спрашивать бы не стали...



--------------------
С уважением, г-н Посол.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0604 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.