Отличный вопрос.
Насколько я знаю, это невозможно сделать в текущей версии Delphi. Это очень прискорбно, поскольку эти анонимные процедуры были бы полезны для быстрой настройки обработчиков событий объекта, например, при настройке тестовых устройств в среде автоматического тестирования типа xUnit.
У CodeGear должно быть два способа реализации этой функции:
1: разрешить создание анонимных методов. Примерно так:
Button1.OnClick := procedure( sender : tobject ) of object begin
...
end;
Проблема в том, что указывать в качестве собственного указателя для анонимного метода. Можно использовать собственный указатель объекта, из которого был создан анонимный метод, но тогда можно создавать только анонимные методы из контекста объекта. Лучше было бы просто создать закулисный объект за кулисами для анонимного метода.
2: В качестве альтернативы можно разрешить типам событий принимать как методы, так и процедуры, если они совместно используют определенную подпись. Таким образом, вы можете создать обработчик событий так, как вам нужно:
Button1.OnClick := procedure( sender : tobject ) begin
...
end;
На мой взгляд, это лучшее решение.