...я вижу что событие делегировано, но почему вы считаете, что это отход от ООП? Тем не менее, Delphi это использует при каждом определении обработчика события.
Вот как поступить в вашей ситуации:
type TCalculateEvent = procedure(I: Integer) of object; |
type TSomeClass = class(TObject) private FOnCalculate: TCalculateEvent; procedure DoCalculate(I: Integer); public property OnCalculate: TCalculateEvent read FOnCalculate write FOnCalculate; end; |
procedure TSomeClass.DoCalculate(I: Integer); begin if Assigned(FOnCalculate) then FOnCalculate(I); end; |
Теперь вы можете присваивать значение объекту TSomeClass, и назначать любую процедуру событию OnCalculate (естественно, при условии, что ее объявление соответствует объявлению TCalculateEvent).
-Steve [000671]