Schon mal so (mir Regions) versucht?
Delphi-Quellcode:
Var MyRgn: HRGN ;
Begin
MyRgn := CreateRectRgn(0, 0, 200, 100);
SelectClipRgn(Canvas.Handle, MyRgn);
//Canvas.Pie(0, 0, 200, 200, 200, 100, 0, 100);
Canvas.Ellipse(0, 0, 200, 200);
SelectClipRgn(Canvas.Handle, nil);
DeleteObject(MyRgn);
End;
Da der untere Teil eh weggeschnitten wird, kannst du auch auf den einfacheren Befehl (Ellipse) zurückgreifen.
Ansonsten bleibt dann noch selber zeichnen - Pixel für Pixel ^^