Beim TEdit bleibt aber das Problem (schwarzer Trauerrand). Da hilft WMEraseBkgnd nicht. Das scheint an was anderen zu liegen, das dabei nicht geht.
Das liegt am DoubleBuffered des Formulars. Wenn du dort auch das WM_ERASEBKGND überschreibst, klappt es.
Allerdings ist die Frage wozu du das DoubleBuffered benötigst, denn letztlich hebelst du das damit natürlich auch aus.