|
|
|
Вопрос по наследованию форм
|
|||
|---|---|---|---|
|
#18+
Привет всем. Delphi XE7. Создаем пустую форму и в секции public размещаем объявление класса TButton с именем Button1: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Наследуемся от TForm1 и кидаем на форму наследника компонент TButton с именем Button1: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Проект собирается, никаких ошибок нет. Так и должно быть, что разрешено дублирование имен компонентов предка и наследника? Если да, то каков в этом смысл? И как обратиться из наследника к Button1 предка? P.S. Обнаружил такую загогулину в унаследованном коде. С уважением, Polesov. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 10:42 |
|
||
|
Вопрос по наследованию форм
|
|||
|---|---|---|---|
|
#18+
В секции public указана переменная с названием Button1 А в dfm - просто инструкция о том, что при создании формы нужно не забыть создать экземпляр класса TButton у которого свойство NAME = 'Button1'. То есть пересекаются имя переменной и значение свойства еще не созданного объекта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 10:52 |
|
||
|
Вопрос по наследованию форм
|
|||
|---|---|---|---|
|
#18+
Хотя стоп. У Вас две переменные с одинаковым названием Button1 Одна в предке, вторая в потоке. ОО это не запрещает. Но в потомке Вы потеряете возможность обращаться к Button1 из предка. Ну только разве что приведением типа: TForm1(Self).Button1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 10:55 |
|
||
|
Вопрос по наследованию форм
|
|||
|---|---|---|---|
|
#18+
Понятно, вопрос закрыт. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 11:31 |
|
||
|
Вопрос по наследованию форм
|
|||
|---|---|---|---|
|
#18+
SinemuriusОО это не запрещает. Но в потомке Вы потеряете возможность обращаться к Button1 из предка Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 16:24 |
|
||
|
Вопрос по наследованию форм
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Код: pascal 1. Ошибка на этапе компиляции Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 16:54 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39767627&tid=2039874]: |
0ms |
get settings: |
11ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
403ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 747ms |

| 0 / 0 |
