Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Imprimir un TForm y sus datos

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Imprimir un TForm y sus datos Responder citando

Hola a todos.

Tengo un TForm y unos componentes en él: TEdit's, TListView's, TLabel's, etc.

Necesito que me imprima el TForm completo, tal y como está en pantalla, con su barra de títulos y los datos que figuran en los controles. He probado TForm->Print() pero no me imprime ni los datos ni la barra de la ventana.

Gracias de antemano.

Nos vemos en la gira del próximo milenio (H.d.S.)

Volver arriba
Mensaje    Asunto: Imprimir un TForm y sus datos Responder citando

Hola.

Necesito alguna respuesta con urgencia. ¡Por favor!

Gracias.

Volver arriba
Mensaje    Asunto: Imprimir un TForm y sus datos Responder citando

Aquí va una respuesta "urgente". Funciona en todas las versiones de BCB excepto la 1:

code:
    Graphics::TBitmap *bmp = new Graphics::TBitmap;
bmp->PixelFormat = pf24bit;
// Capturamos la imagen del form completa en 'bmp'
TCanvas *canvas = new TCanvas;
canvas->Handle = GetWindowDC(Handle);
bmp->Width = canvas->ClipRect.Width();
bmp->Height = canvas->ClipRect.Height();
bmp->Canvas->CopyRect(canvas->ClipRect, canvas, canvas->ClipRect);
ReleaseDC(Handle, canvas->Handle);
delete canvas;
//--- Impresion
Printer()->BeginDoc();
// Ajustamos las dimensiones de la imagen en pantalla a la impresora
TRect rect;
rect.Left = rect.top = 0;
rect.Right = MulDiv(bmp->Width,
GetDeviceCaps(Printer()->Canvas->Handle,LOGPIXELSX), PixelsPerInch);
rect.Bottom = MulDiv(bmp->Height,
GetDeviceCaps(Printer()->Canvas->Handle,LOGPIXELSY), PixelsPerInch);
// La copiamos en el Canvas de la impresora
Printer()->Canvas->StretchDraw(rect, bmp);
Printer()->EndDoc();
// Liberamos la memoria del bitmap
delete bmp;


Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.