implementation var StringList:TStringList; {$R *.dfm} procedure p0(const data:string); begin ShowMessage('Zgłasza się p0'#13#10 + data); end; procedure p1(const data:string); begin ShowMessage('Zgłasza się p1'#13#10 + data); end; procedure TForm1.Button1Click(Sender: TObject); var data:string; proc:procedure(const data:string); index:integer; begin data:='Jakieś dane'; StringList.Find('p0', index); proc:=Pointer(StringList.Objects[index]); proc(data); end; initialization StringList:=TStringList.Create; StringList.Sorted:=True; StringList.AddObject('p0', TObject(@p0)); StringList.AddObject('p1', TObject(@p1)); finalization StringList.Free; end.