A veces no nos paramos a pensar las cosas y el primer resultado, aunque funciona, no es óptimo.
Seguramente esto sea lo que me ha pasado a mí esta vez.
Luego he pensado que tal vez sea más efectivo (puedes probarlo y comentarlo) utilizar los métodos de TCanvas disponibles.
TCanvas, posee el método para copiar una porción de un Canvas a otro. Es el método
CopyRect. Esa porción de Canvas se copia utilizando el modo
CopyMode .
De esta forma si pones un botón en el form y colocas el siguiente código:
Código Delphi
[-]
var
sRect, dRect:TRect;
begin
FormShow(nil);
sRect.Left := 0; sRect.Top := 0; sRect.Right := 40; sRect.Bottom := 40;
dRect.Left := 0; dRect.Top := 0; dRect.Right := 80; dRect.Bottom := 80;
Image2.Picture.Bitmap.Canvas.CopyRect(dRect, Image1.Picture.Bitmap.Canvas, sRect);
Verás que se copia una poción de la imagen superior (Image1 - 40x40) en la imagen inferior (Image2) con un tamaño del doble (80x80), con lo que conseguimos un efecto de lupa.