[pascal]objname:=TLabel.Create(self);
objname.SetOnClick:=Procedurename;[/pascal]
Yes this works, why would it not? All events in delphi are based on this.

Edit: I mean works for procedures, don't know about external ones. Delphi allows pointers to procedures too though.