// Protocol @ Protocol mycalcevent -(Void) oncalceventa: (INT) returns ext1 :( INT) extinx1; -(Void) oncalceventb: (INT) returns ext1 :( INT) extinx1; @ End // Objc class: mycalc ------- @ Interface mycalc: nsobject { Bool busy; // ID <mycalcevent> delegate; } -(Void) setdelegate :( ID) delegate; -(INT) calc: (INT) value; @ Property (nonatomic, assign) ID delegate; @ End |
// User protocol ----------------------------------------------- Mycalcevent = interface (iobjectivec) Procedure oncalceventa (cost: integer; ext1: integer); cdecl; Procedure oncalceventb (cost: integer; ext1: integer); cdecl; End; // Tmycalcevent = Class (toclocal, mycalcevent) Private Public Procedure oncalceventa (cost: integer; ext1: integer); cdecl; Procedure oncalceventb (cost: integer; ext1: integer); cdecl; End; // Mycalc class -------------------------------------------- Mycalc = interface (nsobject) Function calc (value: integer): integer; cdecl; Procedure setdelegate (adelegate: pointer); cdecl; End; // Mycalcclass = interface (nsobjectclass) end; Tmycalc = Class (tocgenericimport <mycalcclass, mycalc>) end; |