First you need to create a procedure to handle the event, with the same signature as the delegate e.g. procedure CallArrivedHandler(Sender TObject, Message string) begin //Your event handling code end Then you need to point your CallArrived member at the procedure... CallArrived := CallArivedHandler; And that should do it. (Apologies for syntax errors - from memory, and I haven't Delphi'd for a few years)