Для этого есть Notification(TComponent* AComponent, TOperation Operation);
Допустим имеются два компонента A и B. Одно из свойств B ссылается на
компонент A. Если оба компонента лежат на одной форме, то проблем не будет
если переопределить метод Notification у компонента B. При удалении
компонента A, у всех компонентов , в том числе B , лежащих на данной форме
вызывается этот метод. Проблема в том, что если удаляемый компонент A
находится на другой форме, это событие у компонента B автоматически не
вызывается. Для того чтобы обеспечить вызов, необходимо сообщить компоненту А,
что бы он при своем удалении вызывал Notification и у компонента B, лежащего
на другой форме. Делается это с помощью функции FreeNotification, которая как
правило вызывается в методе Set свойства Пример
void __fastcall TDataClassLookup::SetDataSource(TDataSource* ds)
{
if ( FExternalDS != ds )
{
FExternalDS = ds;
if ( ds ) ds->FreeNotification(this);
FStateChanged |= SCH_DATASOURCE;
InitDataSource();
}
}
Теперь ds всегда уведомлять о своем удалении, даже если лежит на другой форме
Вячеслав Ермолаев 2:5020/175.2
Предыдущий вопрос
|
|
Следующий вопрос
источник
by jenyok
|