Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #16  
Antiguo 22-12-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola marcelocarazas
Cita:
Empezado por marcelocarazas Ver Mensaje
funciona, pero como haria si el objeto paintbox esta con la propiedad visible esta en false ya que imprime cuando el objeto esta visible
Bueno... Pero supongo que en algún momento estará visible, si no ¿ Como sabría el usuario que es lo que va a imprimir ?

Entonces basta con pasar previamente el contenido del PaintBox al Bitmap (luego da igual si el PaintBox está visible u oculto, lo limpias o lo destruyes).
Código Delphi [-]
var
  Bitmap: TBitmap;

// Pasa el contenido del PaintBox al Bitmap
procedure PaintBoxToBitmap(PB: TPaintBox; BM: TBitmap);
begin
  BM.Width := PB.Canvas.ClipRect.Right;
  BM.Height:= PB.Canvas.ClipRect.Bottom;
  BitBlt(BM.Canvas.Handle,
         0,
         0,
         BM.Width,
         BM.Height,
         PB.Canvas.Handle,
         0,
         0,
         SRCCOPY);
end;

// OnCreate Form1
procedure TForm1.FormCreate(Sender: TObject);
begin
  Bitmap:= TBitmap.Create;
end;

// Hacer un dibujo
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
  with PaintBox1 do
  begin
    Canvas.Brush.Style:= bsClear;
    Canvas.Brush.Color:= clYellow;
    Canvas.Ellipse((Width div 2)-30,(Height div 2)-30,
                   (Width div 2)+30,(Height div 2)+30);
                   Canvas.Pen.Color:= clRed;
    Canvas.Pen.Width:= 2;
    Canvas.Pen.Style:= psSolid;
    Canvas.MoveTo(0,0);
    Canvas.LineTo(Width,Height);
  end;
end;

// Pasar PaintBox a Bitmap cuando esté visible,
// luego puedes hacer lo que desees con el primero
procedure TForm1.btnPBoxToBmpClick(Sender: TObject);
begin
  PaintBoxToBitmap(PaintBox1, Bitmap);
end;

// Bitmap -> Rave
procedure TForm1.btnPrintClick(Sender: TObject);
begin
  if not Bitmap.Empty then
    RvSystem1.Execute;
end;

// TRvSystem OnPrint
procedure TForm1.RvSystem1Print(Sender: TObject);
begin
  with TBaseReport(Sender) do
    PrintBitmap(1,1,1,1, Bitmap);
end;

// Liberar memoria
procedure TForm1.FormDestroy(Sender: TObject);
begin
  Bitmap.Free;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 23-12-2014 a las 00:21:22.
Responder Con Cita
 



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
Imprimir imagen desde report rave nabucodonosor Impresión 5 04-10-2011 21:57:26
Imprimir un query en rave report cacu OOP 3 26-03-2008 20:02:40
imprimir imagen desde mysql con rave report sagiro60 Impresión 5 20-10-2006 03:33:44
imprimir imagen desde mysql con rave report sagiro60 Conexión con bases de datos 0 16-10-2006 20:41:56


La franja horaria es GMT +2. Ahora son las 20:23:11.


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
Copyright 1996-2007 Club Delphi