El método Change que has colocado funciona perfectamente, pero te falta definir el
inherited en el
changed del componente (no en el evento).
Has sobreescrito (supongo) el método
Changed en tu componente con la clausula
override, así que si no llamas al inherited desde tu método perderás todo el código que se ejecuta en los predecesores(antecesores) de tu componente. En concreto en
TCustomEdit.Change se lanza el evento
OnChange, por lo tanto, al no colocar inherited en tu componente ese evento deja de funcionar.
Código Delphi
[-]
procedure TColorEdit.Change;
begin
inherited;
if FMode = MOpenFile then
if fileexists(text) then
begin
.....
EDITO: Veo que se me adelantaron...



Esto me pasa por no refrescar las ventanas...