Hola,
No sé si me estoy perdiendo algo, pero, ¿qué pasa si se usa la función "Assigned"? Tal que así:
Código Delphi
[-]
if Assigned( TFormProveedorFactura( Components[ i ] ).OnEnter ) then
ShowMessage( 'OnEnter is assigned' )
else
ShowMessage( 'OnEnter is NOT assigned' );