Сочетания владелец и PArent и Taction на фреймах - PullRequest
6 голосов
/ 16 марта 2011

У меня есть форма с панелью.

Я создаю фреймы во время выполнения и отображаю их на панели, устанавливая родительское свойство фрейма для панели.

При создании панелей я не устанавливаюсобственность владельца, потому что я сам управляю временем жизни кадра.

До сих пор у меня не было проблем.Затем я поместил TActionList на фрейм с некоторыми ярлыками действий.

Я обнаружил, что мои действия не выполнялись, пока я не установил свойство владельца фрейма на панель.

Может кто-томожете мне это объяснить?Я подумал, что свойство владельца как раз о том, какой компонент отвечает за освобождение дочерних компонентов и не отвечает за пересылку ключевых событий.

Ответы [ 2 ]

5 голосов
/ 16 марта 2011

Обработка ярлыка формы выполняется в TCustomForm.IsShortCut, где компоненты повторяются, включая TActionLists.Хотя фрейм не принадлежит форме, ни один из списков действий на фрейме не найден во время итерации.Это можно обойти, изменив владельца списка действий или полного фрейма на форму, пока фрейм прикреплен к панели.Смена владельца после создания может быть сделана с помощью InsertComponent.

1 голос
/ 16 марта 2011

Владелец в основном об управлении жизненным циклом.Но есть как минимум poOwnerFormCenter, который использует Owner для совершенно другой цели.И вы, вероятно, наткнулись на другую цель.

...