Creo que seria mas fácil usando:
Código Delphi
[-]procedure TCanvas.CopyRect(const Dest: TRect; Canvas: TCanvas;
const Source: TRect);
Te he hecho un ejemplo sencillo, para que veas su funcionamiento:
Código Delphi
[-]var
Dest, Source: TRect;
begin
Dest.Left:=0;
Dest.Top:=0;
Dest.Right:=Image1.Width div 2;
Dest.Bottom:=Image1.Height;
Source.Left:=0;
Source.Top:=0;
Source.Right:=Image1.Width div 2;
Source.Bottom:=Image1.Height;
Image2.Canvas.CopyRect(dest, image1.Canvas, Source);