![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отличия Owner и Self
HAtCH © (2006-12-15 12:29:00)Привет!!!! Скажите плиз. чем отличаются параметры Self, Application, Owner при создании формы
Form1:=TForm.Create(Self);
Form1:=TForm.Create(Owner);
Form1:=TForm.Create(Application);
И в каком случае использовать тот или иной параметр?
Спасибо!!!
ors_archangel (2006-12-16 12:53:00) [1]
> А это называется: "Я тебя родил, я тебя и убью" :)
Тьфу ты, точно!
ЮЮ (2006-12-16 12:09:00) [2]
> А TControl.Create(self) - это правильно? - "сам себе хозяин"?
>
Если пишешь в методе уже существующего объекта, например формы, то именно он и есть Self, а не толшько что создаваемый TControl.
А это называется: "Я тебя родил, я тебя и убью" :)
ors_archangel (2006-12-16 09:49:00) [3]А TControl.Create(self) - это правильно? - "сам себе хозяин"? Я пишу TControl.Create(nil) - "я свободный компонент, нет у меня владельца!"
MetalFan (2006-12-16 05:57:00) [4]
> Да умрет она и так, без участия совести программиста...
ага, вместе с процессом 99.9%)
Джо (2006-12-16 00:46:00) [5]Да умрет она и так, без участия совести программиста...
Германн (2006-12-16 00:28:00) [6]
> Можно вообще nil указать, только в этом случае "смерть"
> формы на совести программиста.
Точнее не смерть, а "эвтаназия" будет на его совести :)
RASkov (2006-12-15 20:46:00) [7]> Чем они отличаются
"Временем жизни"
По сути параметром конструктора Create указывается владелец "объекта к которому применен конструктор". Т.н. конструктор вызывается не у объекта а применяется к классу. И пока жив владелец, то может жить и объект.
Self - это неявнообъявленная переменная.
Owner - свойство типа TComponent
Application - объект типа TApplication.
Вообщем в принципе по барабану как создавать форму, просто учитывай при создании время жизни объекта владельца будующей формы. Можно вообще nilуказать, только в этом случае "смерть" формы на совести программиста.
> это ссылки на объекты, отвечающие за время жизни Form1
Во-во... только наверное больше так - это ссылки на объкты, которые ограничивают время жизни создаваемой формы, в данном случае - Form1.
alex_*** (2006-12-15 12:55:00) [8]это ссылки на объекты, отвечающие за время жизни Form1
MetalFan (2006-12-15 12:54:00) [9][1] иногда лучше молчать...
отделите мухи от котлет...
constructor Create(AOwner: TComponent);
параметр указывает владельца создаваемого компонента
self и owner в контесте метода класса (компонента) ссылаются: self - на себя(TObject), owner - на "владельца" (TComponent);
в рамках вопроса:
1) владельцем создаваемой формы будет компонент, в методе которого выполняется код
2) владельцем будет владелец компонента (вот такая тавтология), в методе которого выполняется код
3) владельцем формы будет Application. что есть правильно.
HAtCH (2006-12-15 12:51:00) [10]Чем они отличаются, вот про Owner мне сказали (Спасибо!!), а про остальные скажите....
Anatoly Podgoretsky (2006-12-15 12:41:00) [11]> HAtCH (15.12.2006 12:29:00) [0]
Это один и тот же параметр, он всего один у данной функции.
Desdechado (2006-12-15 12:39:00) [12]F1
HAtCH (2006-12-15 12:33:00) [13]А self, Application и obj что за параметры
alex_*** (2006-12-15 12:32:00) [14]еще можно вариант: Form1:=TForm.Create(obj);
Owner, это будет тебя грохать перед тем как самому исчезнуть