>Shape.parent:=で親を変更した場合は、ClintToScreenなどでtop,Leftを
>計算してうまくいくのですが、
>Windows.SetParent( で親を変更した場合には、Top,Leftに何を入れても

TShape ってウィンドウを作らない VCL コントロールなんだから
Windows.SetParent() で親を設定できるはずないだろ