Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   ¿Cómo ... funciona BitBlt? (https://www.clubdelphi.com/foros/showthread.php?t=64337)

ElDuc 27-03-2009 13:46:13

¿Cómo ... funciona BitBlt?
 
Hola a todos.

Intento copiar elcontenido del bitmap de un TImage a otro y no hay manera.

Yo creo que este procedimiento debería hacerlo, pero que no quiere.

Código Delphi [-]
procedure TForm2.Button1Click(Sender: TObject);
begin
   Try
     BitBlt(Image2.Picture.Bitmap.Canvas.Handle,0,0,Image1.Width,Image1.Height,Image1.Picture.Bitmap.Canv  as.Handle,0,0,SRCCOPY);
   finally
     ReleaseDC(0,Image1.Picture.Bitmap.Canvas.Handle);
     end;
end;
¿Alguien puede ayudarme?

ElDuc 27-03-2009 13:48:45

...
 
Por cierto me dejé deciros que lo que sucede es que desaparecen los 2 TImage

Caro 27-03-2009 14:21:57

Hola, puedes también hacerlo así:

Código Delphi [-]
  Image2.Picture.Assign(Image1.Picture);

Saluditos

ElDuc 27-03-2009 14:28:31

...
 
Gracias, pero este sistema no me permite copiar un trozo concreto.

¿O sí?

cHackAll 27-03-2009 17:22:28

No uses BitBlt, usa TCanvas.CopyRect

escafandra 04-04-2009 20:53:39

Mitra este código. Muestra como pintar directamente en un TPanel, o donde quieras:
Código:

HDC dc = GetDC(Panel1->Handle);
BitBlt(dc, 0,0, Panel1->Width,Panel1->Height, Image1->Canvas->Handle, 0,0, SRCCOPY);
ReleaseDC(Panel1->Handle, dc);

El problema está en que deberías actualizar el evento paint porque sino la imagen no se repinta y se perderá. De aquí que no deberías usarlo como dice cHackAll. es mas cómodo lo que te comenta.

Saludos.


La franja horaria es GMT +2. Ahora son las 18:16:02.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi