--- ---
Question
Can anyone point me in the direction of an code snippet for drawing a pie / circle given the following definition:

    procedure Pie(
      ACanvas: TCanvas;
      ACenter: TPoint;
      ARadius: Integer;
      AStartDeg, AEndDeg: Float
    );

which draws a pie as a section of a circle starting at AStartDeg dregrees (0 being straight up - or whatever) and ending at AEndDeg (360 being straight up - or whatever) using ACanvas default drawing parameters (brush and pen).

TCanvas.Pie can be used to get what you want - with a little trig. The following has 0 degrees being to the right (as in trig classes) with a positive angle in the counterclockwise direction (as in trig classes):

    uses
      Math;  {DegToRad}

    procedure DrawPieSlice(const Canvas: TCanvas; const Center: TPoint;
      const Radius: Integer; const StartDegrees, StopDegrees: Double);
    const
      Offset = 0;  {to make 0 degrees start to the right}
    var
      X1, X2, X3, X4: Integer;
      Y1, Y2, Y3, Y4: Integer;
    begin
      X1 := Center.X - Radius;
      Y1 := Center.Y - Radius;
      X2 := Center.X + Radius;
      Y2 := Center.Y + Radius;
      {negative signs on "Y" values to correct for "flip" from normal math
      defintion for "Y" dimension}
      X3 := Center.X + Round(Radius * Cos(DegToRad(Offset + StartDegrees)));
      Y3 := Center.y - Round(Radius * Sin(DegToRad(Offset + StartDegrees)));
      X4 := Center.X + Round(Radius * Cos(DegToRad(Offset + StopDegrees)));
      Y4 := Center.y - Round(Radius * Sin(DegToRad(Offset + StopDegrees)));
      Canvas.Pie(X1, Y1, X2, Y2, X3, Y3, X4, Y4);
    end;

    procedure TForm1.Button1Click(Sender: TObject);
    var
      Center: TPoint;
      Bitmap: TBitmap;
      Radius: Integer;
    begin
      Assert (Image1.Width = Image1.Height);  {Assume square for now}
      Bitmap := TBitmap.Create;
      try
        Bitmap.Width  := Image1.Width;
        Bitmap.Height := Image1.Height;
        Bitmap.PixelFormat := pf24bit;
        Bitmap.Canvas.Brush.Color := clRed;
        Bitmap.Canvas.Pen.Color := clBlue;
        Center := Point(Bitmap.Width div 2, Bitmap.Height div 2);
        Radius := Bitmap.Width div 2;
        DrawPieSlice (Bitmap.Canvas, Center, Radius, 0, 30);
        DrawPieSlice (Bitmap.Canvas, Center, Radius, 90, 120);
        Image1.Picture.Graphic := Bitmap;
      finally
        Bitmap.Free;
      end;
    end;