| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Mary Invitado
|
Publicado: Vie 02 Ene, 2004 7:57 pm Asunto: Cómo imprimir el contenido de un TabControl |
|
|
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 |
|
 |
ikis Master


Registrado: 28 Dic 2002Mensajes: 703Ubicación: Madrid, España
|
Publicado: Sab 03 Ene, 2004 8:46 pm Asunto: |
|
|
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 |
|
 |
Mary Invitado
|
Publicado: Lun 05 Ene, 2004 6:29 pm Asunto: |
|
|
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 |
|
 |
ikis Master


Registrado: 28 Dic 2002Mensajes: 703Ubicación: Madrid, España
|
Publicado: Mar 06 Ene, 2004 1:55 am Asunto: |
|
|
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 |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mar 06 Ene, 2004 3:00 am Asunto: |
|
|
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 |
|
 |
Fernando Diaz Master


Registrado: 18 Jul 2004Mensajes: 273Ubicación: Talavera de la Reina (Toledo)
|
Publicado: Mar 05 Abr, 2005 8:01 pm Asunto: |
|
|
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 |
|
 |
|