Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

В чем отличие между Create(Self) и Create(Application)?

Delphi , Компоненты и Классы , Процедуры и Функции

В чем отличие между Create(Self) и Create(Application)?

Self может быть использовано только в методе класса, и ссылается на текущий экземпляр класса. Таким образом "Self" в методе класса TForm1 ссылается на текущий экземпляр TForm1. При создании компонента Вы передаете его владельца (owner) в конструктор. При уничтожении формы или компонента автоматически уничтожаются и все компоненты владельцем которого она является. Таким образом если при создании формы передать в качестве владельца Application эта форма будет автоматически уничтожена при уничтожении Application. Если же при создании формы передать в качестве владельца другую форму, вновь созданная форма будет автоматически уничтоженна при уничтожении формы-владельца.

Вопрос о программировании на Delphi! Разница между Create(Self) и Create(Application) заключается в владении созданным объектом.

Когда вы используете Create(Self), вы создаете экземпляр класса и устанавливаете его владельцем текущий экземпляр (Self). Это означает, что новый экземпляр будет принадлежать существующему экземпляру, который отвечает за освобождение его при необходимости. В других словах, жизнь нового экземпляра связана с жизнью существующего экземпляра.

С другой стороны, когда вы используете Create(Application), вы создаете экземпляр класса и устанавливаете его владельцем объект Application (Application). Это означает, что новый экземпляр будет принадлежать приложению само, которое освободит его при закрытии или остановке приложения. В других словах, жизнь нового экземпляра связана с жизнью приложения.

Чтобы иллюстрировать эту разницу, рассмотрите следующие сценарии:

  1. Вы создаете форму и устанавливаете ее владельцем Self (т. е., другой форме). Если эта форма будет уничтожена, все формы, принадлежащие ей, также будут уничтожены.
  2. Вы создаете форму и устанавливаете ее владельцем Application. даже если вы уничтожите форму, приложение еще будет существовать, и экземпляр формы не будет освобожден до тех пор, пока приложение не будет закрыто.

В целом, использование Create(Self) создает отношение владения между экземплярами одного класса, а использование Create(Application) создает отношение владения с приложением само.

Различие между методами Create(Self) и Create(Application) заключается в том, что Create(Self) создает компонент с текущим экземпляром класса как владельцем, а Create(Application) автоматически уничтожает форму при уничтожении приложения.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Процедуры и Функции ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-10 07:13:18
2024-05-19 17:40:16/0.010496854782104/2