Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-10-2006
Papitu Papitu is offline
Registrado
 
Registrado: sep 2006
Posts: 1
Poder: 0
Papitu Va por buen camino
Copiar un PaintBox al Clipboard

Estoy programando una aplicación en la que tengo un paintbox dentro de un panel y me interesa colocar el contenido del paintbox en el clipboard en forma de bitmap.

He estado mirando por la red y he entrevisto algunos truquillos pero no me han resultado bien por una u otra razón.

Si algún amable delphista conociera la solución y quisiera comunicarla, pues se lo agradecería más o menos eternamente.

Gracias.
Responder Con Cita
  #2  
Antiguo 01-10-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Vamos por partes, puedes copiar el contenido del TPaintbox fácilmente, al menos la parte visible del mismo. Es decir, si parte del paintbox esta tapado por otra ventana, se encuentra fuera de los limites de la pantalla o la ventana esta minimizada la parte que no se vea aparecerá en blanco. Se haría de la siguiente manera:

Código Delphi [-]
uses ClipBrd;

procedure Copiar(Src: TCanvas; X, Y, Width, Height: Integer);
var
  Bitmap: TBitmap;
begin
  Bitmap:= TBitmap.Create;
  try
    Bitmap.Height:= Height;
    Bitmap.Width:= Width;
    Bitmap.Canvas.CopyRect(Rect(0,0,Width,Height),Src,
      Rect(X,Y,X + Width,Y + Height));
    Clipboard.Assign(Bitmap);
  finally
    Bitmap.Free;
  end;
end;

// Para utilizar la funcion
Copiar(PaintBox1.Canvas, 0,0,PaintBox1.Width,PaintBox1.Height);

Esta seria la solución fácil, copiar solo que se ve. Pero no es una solución muy buena, otra solución pasaría por saber como se dibuja el contenido del TPaintbox. Si eres tu el que lo dibuja, no tendrías dificultad alguna en volver a dibujar todo en un bitmap para después copiarlo. Incluso podrías usar el mismo procedimiento para dibujar ambos, pasándole como parámetro el canvas, en un caso el del TPaintbox y en el otro el del Bitmap. Si por el contrario no eres capaz de volver a dibujar todo el contenido del canvas, tendrías que ir pensando en usar un TImage en vez de un TPaintbox, sobre todo porque eso quiere decir que en el método OnPaint de tu TPaintbox seguramente no tienes escrito nada, y cada vez que el TPaintbox es tapado por otra ventana se borra y no lo redibujas.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Coordenadas en el PaintBox fabiof2000 Gráficos 2 27-09-2006 10:08:03
paintbox pattyka Gráficos 2 25-06-2006 20:01:57
Imprimir el contenido de un PaintBox cjimenez C++ Builder 2 09-03-2005 20:00:57
Repintar un paintbox vipata Gráficos 0 14-02-2005 18:37:24
Color de fondo y escala de un paintbox vipata Gráficos 2 28-12-2004 10:30:33


La franja horaria es GMT +2. Ahora son las 21:14:19.


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