Hi,
first, u have a problem with your Trect. Rect(0,501,16,500) have a negative area.. from 501 to 500 = -1
this code should work.. with maybe a little modification of the TRect data..
// bmp_file_source_path='C:\source.bmp';
// bmp_file_dest_path='C:\dest.bmp';
//...
procedure TForm1.Button1Click(Sender: TObject);
var
BMsrc,BMdst: TBitmap;
Rsrc,Rdst: TRect;
begin
BMsrc:=TBitmap.create;
BMsrc.LoadFromFile(bmp_file_source_path);
Rsrc := Rect(0,BMsrc.Height div 2,16,BMsrc.Height);
Rdst := Rect(0,BMsrc.Height div 2,16,BMsrc.Height);
BMdst:=TBitmap.create;
BMdst.Height:=Rdst.Bottom;
BMdst.Width:=Rdst.Right;
//since Rdst=Rsrc u can use only one
BMdst.Canvas.CopyRect(Rdst,BMsrc.Canvas,Rsrc);
BMdst.SaveToFile(bmp_file_dest_path);
BMsrc.free;
BMdst.free;
end;
jb