Liegt das nicht daran, dass dein Event-Handler private-Deklariert ist?
Ich würde das eher so schreiben:
Delphi-Quellcode:
TButtonGrid = class
private
{...}
FClickAction: TNotifyEvent;
published
{...}
Procedure AssignButtons(Captions: Array Of String);
property ClickAction: TNotifityEvent read FClickAction write FClickAction;
{...}
end;
Edit: bin heute wohl noch nicht wach. So müsste es nun stimmen