When using round panels, the underlying components are not painted in the panel square. Investigating this I've some suggestions.
Change to lines in procedure TAdvSmoothPanel.WMPaint from commented to this:
// if (Parent is TWinCtrl) then // Won't work. Never true
// (Parent as TWinCtrl).PaintCtrls(DC, nil); // PaintCtrls won't work for TWinControl's
if (Parent is TWinCtrl) then // TVN
(TWinCtrl(Parent)).PaintCtrls(DC,Self); // TVN
And Change this:
procedure TWinCtrl.PaintCtrls(DC: HDC; First: TControl);
Var
i,c:Integer;
begin
// PaintControls(DC, First); // Only works for other than TWinControl's
i:=0;
c:=-1;
// Find index for selv in control list
While (i<ControlCount) and (c<0) Do Begin
If First=Controls[i] Then c:=i;
Inc(i);
End;
i:=0;
// Only paint control under self
While i<C Do Begin
If (Controls[i] is TWinControl) {And (Controls[i]<>Self)} then
with TWinControl(Controls[I]) do
If Visible and RectVisible(DC, System.Types.Rect(Left, Top, Left + Width, Top + Height)) // Visible under us?
then PaintTo(DC, Left, Top);
Inc(i);
End;
end;