Zitat:
rect.Right := Form1.Width-GetSystemmetrics(SM_CXEDGE);
Der Zugriff auf Form1.Width ist hier unangebracht:
1.) Zugriff auf globale Variable statt auf Self.Width
2.) .Width kann im wm_NCPaint noch undefiniert sein, d.h. stimmt nicht mit den tatsächlichen Größenverhältnissen des Fensterhandles überein. GetWindowRect() wäre richtiger.
Generell sollte man sich bei solchen Messages nicht auf die
VCL verlassen sondern nur auf's Windows-
API.
Gruß Hagen