Что будет если по адресу уже другая процедура?
 Добавлено: 05.01.2014 23:40:10
Добавлено: 05.01.2014 23:40:10Встал вопрос, что будет если идет такая ситуация. Этап первый - создаются классы и у всех в один список собираем адреса процедур оповещения их о каком то изменении.
Этап второй - Всем элементам списка рассылается сообщение о изменении.
Вопрос в следующем, если кто то из них уже уничтожен, что будет с ним, при попытке его вызова? Свою программу я через проверну защитить смогу, но не нарушит ли это что то другое что будет находится где раньше была процедура?
			Этап второй - Всем элементам списка рассылается сообщение о изменении.
Вопрос в следующем, если кто то из них уже уничтожен, что будет с ним, при попытке его вызова? Свою программу я через проверну защитить смогу, но не нарушит ли это что то другое что будет находится где раньше была процедура?
- Код: Выделить всё
- TMyClass=class
 public
 procedure ChangeEvent(Sender:TObject);
 end;
- Код: Выделить всё
- ***
 var
 ListEvent:TList;
 ****
 var
 Item:TMyClass;
 begin
 Item:=TMyClass.create;
 ListEvent.add(addr(item.ChangeEvent));
 item.free;
 end;
- Код: Выделить всё
- for i:=0 to ListEvent.Count-1 do
 begin
 try
 EventProcedure:=Items[i];
 EventProcedure(self); //go
 except
 //что будет с новыми данными в случае возникновения этой ситуации
 end;
 end;
