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 

Cómo imprimir el contenido de un TabControl

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Cómo imprimir el contenido de un TabControl Responder citando

Hola y feliz año a todos:
Me gustaría que me dijerais cómo puedo imprimir el contenido de una ficha de un TabControl.

Gracias de antemano.
Volver arriba
Mensaje    Asunto: Responder citando

Aqu;i no tengo Builder instalado, pero si quieres imprimir un formulario, con

Form->Print():

alcanza.

Probablemente puedas hacer lo mismo con este componente. En caso de que no sea posible, por código podría alinear a alClient tu componente y recién ahi imprimir el formulario. Otra opción sería que ocultes (con Visible=false) a los componentes que no quieres que se vean.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Responder citando

No me permite imprimir un componente TabControl directamente con el método Print y por otro lado no quiero ocultar componentes al usuario final.

Me puedes dar alguna otra solución?
Volver arriba
Mensaje    Asunto: Responder citando

la idea no es ocultar los componentes siempre, sino temporalmente, para la impresión, básicamente algo así:

Código:

void __fastcall Imprimit()
{
   componente1->Visble=false;
   componente2->Visble=false;
   componente3->Visble=false;
   Form1->Print();
   componente1->Visble=true;
   componente2->Visble=true;
   componente3->Visble=true;
}
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Responder citando

Aquí tienes una función, valida en todas las versiones del Builder, para imprimir un control cualquiera:
Código:
#include <memory>
#include <printers.hpp>

void ImprimirControl(TControl* ctr)
{
    std::auto_ptr<TControlCanvas> ctrCanvas(new TControlCanvas);
    ctrCanvas->Control = ctr;

    // Copiamos la imagen del control en el bitmap
    std::auto_ptr<Graphics::TBitmap> bmp(new Graphics::TBitmap);
    bmp->Width  = ctr->ClientWidth;
    bmp->Height = ctr->ClientHeight;
    bmp->Canvas->CopyRect(ctr->ClientRect, ctrCanvas.get(), ctr->ClientRect);

    Printer()->BeginDoc();

    // Ajustamos las dimensiones de la imagen en pantalla a la impresora
    TRect rect;
    rect.Left   = 0;
    rect.Top    = 0;
    rect.Right  = MulDiv(GetDeviceCaps(Printer()->Canvas->Handle,LOGPIXELSX),
                         bmp->Width, Screen->PixelsPerInch);
    rect.Bottom = MulDiv(GetDeviceCaps(Printer()->Canvas->Handle,LOGPIXELSY),
                         bmp->Height, Screen->PixelsPerInch);

    // La copiamos en el Canvas de la impresora
    Printer()->Canvas->StretchDraw(rect, bmp.get());

    Printer()->EndDoc();
}

Y un ejemplo de como usarla:
Código:
ImprimirControl(TabControl1);


(Los requisitos son los mismos que para el método Print() de TForm, o sea, debe de estar visible el control a imprimir)
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

y para imprimir el contenido de un TPanel como sería¿¿??, no se puede hacer que te salga las opciones de impresion??
_________________
Los problemas mas dificiles tienen las soluciones mas sencillas
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
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.