Como se ha dicho arriba, intenta utilizar un 'BreakPoint' para ver si entra siquiera en el bucle o no. Si no entra, y todo está bien asignado durante tiempo de diseño, está claro que algo debe hacer tu código que tu mismo hayas programado para provocar que no entre en ese bucle. Suele pasar que uno se le olvida por donde dejó en su momento alguna cosa perdida ...
Te recomiendo es ese caso, como solución infalible, que asignes un evento OnEnter a tu 'Edit2', y que en dicho evento pongas precisamente :
Código Delphi
[-]procedure TFAnadir.Edit2Enter(Sender: TObject);
begin
Edit2.OnKeyPress := Edit2KeyPress;
end;
Opino que este debe de funcionar a la fuerza !
Si es así, es que en alguna parte de tu código estás cambiado algo para que no entre de la manera que lo piensas.
Espero te ayude.
Edito y añado : O a lo mejor en tu código lo que estás precisamente haciendo en tiempo de ejecución es en algún lado poner a True el KeyPreview del Form. Yo lo hago en algunas ocasiones, poniéndolo y quitándolo segun me convenga.