Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > отловить что на мой компонент размещается другой


Автор: alexeybarkalov 21.8.2011, 21:22
Здравствуйте. Есть собственный компонент наследник от TPanel'и у которого есть еще две Panel'и.
Self.ControlStyle := Self.ControlStyle + [csAcceptsControls] , а у двух других панелях я отключаю 
[csAcceptsControls], чтобы была возможность размещать на нем другие контролы. 

Но проблема в том, что когда я размещаю компонент он должен размещаться только на Panel2.
Для этого мне нужно отловить события когда на мой компонент (Self) пытаются разместить компонент
и далее вручную присвоить: OutSider.Parent := Panel2;

Подскажите, пожалуйста, как называется данное свойство. 

Автор: GydruS 25.8.2011, 17:42
Вот из FAQ'a одного:

Вставка и удаление компонент в форму в Design-Time 

Вопрос: Каким образом можно отследить вставку и удаление компонент в форму в design-time? Такая информация могла бы пригодится, если моя компонента имеет ссылки на другие компоненты (например, как в связке TDateSource,TTable и др.)

Ответ: Для получения такой информации предназначен метод procedure Notification (AComponent: TComponent; Operation: TOperation); virtual; класса TComponent. Перекрыв его в своей компоненты Вы можете произвести необходимые действия, в зависимости от значения параметра Operation типа TOperation = (opInsert, opRemove); объявленного в модуле Classes. Параметр AComponent - компонента, соответственно вставлемая или удаляемая, в зависимости от Operation.

(http://www.codenet.ru/progr/delphi/quest021.php)

Автор: sCreator 27.8.2011, 13:56
Перекрывай сообщения:
Код

    procedure CMControlListChange(var Message: TMessage); message CM_CONTROLLISTCHANGE;
    procedure CMControlListChanging(var Message: TMessage); message CM_CONTROLLISTCHANGING;
От TWinControl

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)