BEERZONE |
Отправлено: 11.06.2006, 18:21 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 21
|
Создаю две кнопки с абсолютно разными свойствами. В одной из них пишу Button1=Button2; (правда глупо?:-)). Вроде всё хорошо (хоть этого и не видно). Прога говорит, что Button1->Name="Button2". Во-первых, не понятно, как она терпит два компонента с одним именем, а самое главное FindComponent("Button1") всё равно находит Button1. Ничего не понимаю. Если кто мой бред понял, помогите... |
|
Konstantine |
Отправлено: 11.06.2006, 23:13 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
Если Вы посмотрите *.h файл , то увидете помимо других — две строчки:CODE | TButton *Button1;
TButton *Button2; | это описание указателей на компоненты
и своей строкой Button1=Button2 (действительно глупо:)) — Вы просто указателю Button1 присваиваете адрес компаненты Button2. т.е. они теперь она ссылаются на один объект (с именем Button2).
НО функция (точнее метод формы) FindComponent — находит на форме компонент с именем (имя компонента и имя указателя — две разные вещи) Button1.
P.S.: форма вытерпит и 2 компонента с одним именем (но только созданных в ходе выполнения программы), хотя на этапе дизайна формы Вам не позволит этого
Поэтому вместо неверной своей строки не ленясь напишите полностью:CODE | Button1->Caption=Button2->Caption;
//... и т.д. копирование других свойств
Button1->OnClick=Button2->OnClick;
... и т.д. копирование событий |
и ни в коем случае не использовать что-то типа CopyMemory в объектах — только по одному свойству (property)
Отредактировано Konstantine — 11/06/2006, 23:16
|
|
|