Ver Mensaje Individual
  #1  
Antiguo 12-11-2011
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Reputación: 23
salvica Va por buen camino
Imprimir Canvas en un TCustomControl

Hola a todos, de nuevo por estos lares

He hecho un componente a partir de un TCustomControl, que me dibuja una gráfica en un Canvas mayor que la ventana (1650 x 389)

El problema viene cuando intento imprimirlo, ya que solo soy capaz de imprimir la parte visible.
  1. He intentado copiar el Canvas a un TBitmap y solo copio la parte visible
  2. He intentado asignar el canvas a un TImage o TBitmap, pero me da el error "Cannot assign TControl.Canvas to a TBitMap.Canvas"
  3. He intentado dibujar la gráfica directamente en el Canvas de un TImage o TBitmap, pero no me muestra nada (solo un area gris)
  4. He intentado derivar el componente de un TImage o TBitmap, pero sigo sin ver nada
¿Podeis decirme como se hace?
El código de impresión (que solo copia la parte visible)
Código Delphi [-]
procedure TBanda.ImprimirBanda;
var
  Bitmap     : TBitmap;
  AreaBitmap : TRect;
begin
  AreaBitmap := FAreaBanda;
  Bitmap     := TBitmap.Create;
  try
    Bitmap.Height := FAreaBanda.Bottom;
    Bitmap.Width  := FAreaBanda.Right;
    Bitmap.Canvas.CopyRect(FAreaBanda, Canvas, FAreaBanda);
    PrintScaled(Bitmap); <---- esto imprime el bitmap en el canvas de la impresora
  finally
    Bitmap.Free;
  end;
end;
Saludos
salvica
Responder Con Cita