Once you define event handler in Frame and put it on a Form, then frame's events should and will fire, if you do nothing else.
But you can assign the eventhandler from the form as well. This will override event-handling procedures defined within frame.
Problem is, once you have defined event handler in the form, the form takes control over frame's event even though you remove the event-handler defined in the form --- so do nothing. You can check this by opening form's .lfm file There will be inherited + component names on frame.
To avoid this, there are a few options.
0. Override all eventhandlers of frames in form again -- by just calling frame1.button1click(nil), etc.
1. Delete the frame from the form, then re-insert frame.
2. Do not put frame within form during design time. Create the frame within code.
3. Open .lfm file of the form, search for "inherited" + control name of frame's controls, and remove event handler assignment there.
Logically number 3 must be the easiest solution, but the form takes over control of frame's event handlers even though you click the eventhandler definiiton cell of object inspector inadvertently, and is not removed until you correct .lfm file.