Если я реализую интерфейс в форме, такой как TMyForm = class(TForm, IMyInterface)
, будет ли объект свободен сам, когда на нем больше нет ссылок на интерфейс? Кажется, это не так, хотя я не мог понять, как подсчитывается ссылка TForm (если вообще). Меня беспокоит, что форма освобождается, когда ссылка на интерфейс выходит за пределы области видимости, но это, похоже, не происходит.Будет ли реализованная форма интерфейса свободной, если на ней больше нет ссылок?
Наверно, есть две части вопроса: во-первых, может ли быть неожиданно освобождена форма (реальный вопрос), а во-вторых, как формы подсчитываются.
@TLama TForm происходит от TComponent, который реализует IInterface и IInterfaceComponentReference. TComponent реализует _AddRef и _Release, но они, похоже, только условно делают подсчет ссылок. – Alister
@Alister: 'TComponent' отключает подсчет ссылок на себя, но будет выполнять подсчет ссылок на его свойство' VCLCOMObject', если оно назначено. –
@ Алистер, извините, может быть, я неправильно понял ваш вопрос (прежде чем перечитывать его несколько раз), но я подумал, что вы спрашиваете, что произойдет, если вы добавите интерфейс (который будет реализован в классе 'TForm'). Если добавление этого интерфейса опасно как-то, и если это добавляет ссылку на форму. – TLama