Делегирование события
...я вижу что событие делегировано, но почему вы считаете, что это отход от ООП? Тем не менее, Delphi это использует при каждом определении обработчика события.
Вот как поступить в вашей ситуации:
- Определите тип процедуры, использующейся в качестве обработчика события. Допустим, ваш обработчик OnCalculate имеет один параметр типа Integer (присутствующий лишь для демонстрации идеи). typeTCalculateEvent = procedure(I: Integer) of object;
- Теперь объявите ваш класс: typeTSomeClass = class(TObject)privateFOnCalculate: TCalculateEvent;procedure DoCalculate(I: Integer);publicproperty OnCalculate: TCalculateEvent read FOnCalculatewrite FOnCalculate;end;
- Метод DoCalculate совсем простой:
face="Courier New" size="2">
procedure TSomeClass.DoCalculate(I: Integer);beginif Assigned(FOnCalculate) then FOnCalculate(I);end;