Ver Mensaje Individual
  #5  
Antiguo 03-12-2014
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.441
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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
  // esto solo es para "limpiar" la zona destino
  FormShow(nil);
  // definimos los 2 rectángulos; el destino es el doble del original
  sRect.Left := 0; sRect.Top := 0; sRect.Right := 40; sRect.Bottom := 40;
  dRect.Left := 0; dRect.Top := 0; dRect.Right := 80; dRect.Bottom := 80;
  // Copiamos una zona entre canvas
  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.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita