Thanks for taking the time to reply.
Image1 has a .jpg loaded appx 1500 pixels wide which is being displayed proportionately into the image which itself is about 500 pixels wide.
The first two ellipse drawing instructions perform as I expected in that they draw on the canvas of Image1 over the displayed bitmap and the drawing is not persistant (i.e. any change to the form looses them).
Any instruction to the underlying bitmap e.g. x:=Image1.picture.bitmap.height; seems to switch the Image1 reference permanently to the bitmap itself. So any further drawing to Image1.canvas... actually appears to draw to Image1.picture.bitmap.canvas.... So to me as a novice, it seems strange that I can't draw on the Image1 canvas itself after any such instruction. Probably missing something here? (The bitmap changes are persistant with form changes by the way).
Secondly, when drawing onto the bitmap canvas (the bitmap itself I suppose?) the brush settings as per the previous posts don't seem to make any difference. Neither did altering the transparency with ...Transparent:=false; etc.
I attached the modified code below. The different behaviours I mention can be seen by commenting out lines when running.
Thanks for any help with understanding this.
procedure TForm1.MakeHoleClick(Sender: TObject);
var
x,y,i,j,u,v : integer;
begin
x:=Image1.Width;
y:=Image1.Height;
Image1.Canvas.Brush.Color:=clWhite;
Image1.Canvas.Ellipse(0,0,trunc(x/2),y);
u:=Image1.ClientWidth;
v:=Image1.ClientHeight;
Image1.Canvas.Brush.Color:=clRed;
Image1.Canvas.Ellipse(trunc(u/2)+1,0,u,v);
i:=Image1.picture.Width;
j:=Image1.picture.Height;
Image1.Picture.Bitmap.Canvas.Brush.Style := bsSolid;
Image1.Picture.Bitmap.Transparent:=false;
Image1.Picture.Bitmap.Canvas.Brush.Color:=clGreen;
Image1.Picture.Bitmap.Canvas.Ellipse(0,0,i,j); {still get a transparent ellipse in the displayed bitmap}
Image1.Canvas.Brush.Color:=clWhite;
Image1.Canvas.Ellipse(0,0,trunc(x/2),y); {now draws on the bitmap}
end;