|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.10.2017, 20:29 | #1 |
Участник клуба Подтвердите свой е-майл
Регистрация: 26.01.2008
Сообщений: 1,897
|
Динамическое создание формы с разными владельцами
Доброго времени суток!
Код:
|
14.10.2017, 20:37 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
При уничтожении владельца уничтожится и форма. Только и всего
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
14.10.2017, 20:44 | #3 |
Участник клуба Подтвердите свой е-майл
Регистрация: 26.01.2008
Сообщений: 1,897
|
Получается, если я так
Код:
А если буду создавать так Код:
А это по ходу лучше вообще не использовать Код:
|
14.10.2017, 21:03 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Делаешь в OnClose формы
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
15.10.2017, 01:25 | #5 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,872
|
А как же список Components? Или вы им никогда не пользуетесь по религиозным соображениям?
Понимаете ли вы, кто в этом случае будет владельцем данной формы? |
15.10.2017, 07:44 | #6 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
16.10.2017, 02:12 | #7 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,872
|
Ну тогда я добавлю свои две копейки.
Create(Application); используется в стандартном шаблоне создаваемом Дельфи. В этом стандартном шаблоне он ни чем не лучше и ни чем не хуже Create(nil); Во всяком случае на версиях Windows старше Win3.11 Create(nil); как раз очень часто используется многими авторами при создании временных форм типа Код:
жду хоть какой-то реакции ТС на мой вопрос #5. |
16.10.2017, 06:30 | #8 | |
Участник клуба Подтвердите свой е-майл
Регистрация: 26.01.2008
Сообщений: 1,897
|
Цитата:
|
|
16.10.2017, 07:50 | #9 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
Мне кажется, Вы этим вопросом сами себя запутали. Дело ведь в том, где именно происходит конструирование формы: в методе самой формы или в методе порождающей формы (что встречается гораздо чаще). Во втором случае возникнет вполне нормальная связь предок-потомок.
|
17.10.2017, 01:24 | #10 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,872
|
Вот это как раз и ошибка. Впрочем скорее порожденная учебой на всемирной помойке, а не по учебникам.
Форма не может быть владельцем самой себя! Как впрочем и любой другой компонент! Она либо имеет владельцем другой компонент, либо не имеет владельца вообще (TMyForm.Create(nil)). Зарезервированное слово Self означает неявный параметр, который передаётся в любой метод любого класса и содержит ссылку/указатель на конкретный экземпляр этого класса, в котором и был вызван данный метод. Т.е. предположим что у вас есть форма класса TForm1. На ней есть кнопка Button1 : TButton; И есть обработчик нажатия этой кнопки: Код:
P.S. Black Fregat, вам по прежнему кажется, что я сам себя запутал? |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Динамическое создание формы | NaumOff | Общие вопросы Delphi | 2 | 17.09.2012 18:52 |
динамическое создание формы | Wi1D | Общие вопросы Delphi | 2 | 24.01.2011 01:03 |
Динамическое создание формы | BoT_T | Win Api | 4 | 10.12.2010 12:36 |
Динамическое создание формы. | Son | Общие вопросы Delphi | 1 | 04.02.2009 15:33 |
Динамическое создание формы | Rifler | Общие вопросы Delphi | 6 | 11.09.2008 20:50 |