Using StatusBarPro (v. 1.7), I can cause an access violation in Delphi 5 (Windows XP) with the following steps:
1. Create new form, drop a TStatusBarPro on it
2. Add a panel to the statusbar
3. Drop a TProgressBar on the form, then set it as the control for the
panel.
4. Delete the statusbar (press the delete key with the statusbar
selected in the form designer).
I believe the problem may be that, when the child ProgressBar control is destroyed (in TWinControl.Destroy called on the StatusBar), an opRemove Notification is generated. This eventually reaches the StatusBar's Notification method, which attempts to check if the control is referenced by one of the panels. Unfortunately, the Panels collection has already been freed (during TStatusBarPro.Destroy).
I changed TStatusBarPro.Destroy to use FreeAndNil on FPanels, and then added an Assigned check to TStatusBarPro.Notification, and that seems to have fixed things (at least there's no more AV).