Вызов процедуры, имя которой содержится в переменной

Как вызвать процедуру, имя которой хранится в таблице, списке, и т. п.?

Можно создать переменную типа StringList, как показано ниже:

StringList.Create;
StringList.AddObject('Proc1', @Proc1);
StringList.AddObject('Proc2', @Proc2);
Затем реализовать это в программе:
var
  myFunc: procedure;
begin
  if Stringlist.IndexOf(S) = -1 then
    MessageDlg('Не понял процедуру ' + S, mtError, [mbOk], 0)
  else begin
    @myFunc := Stringlist.Objects[Stringlist.IndexOf(S)];
    myFunc;
  end;
end;
[News Group]