| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Eaco Lt JG

Registrado: 04 Nov 2004Mensajes: 58Ubicación: Las Palmas de Gran Canaria-Islas Canarias
|
Publicado: Lun 11 Abr, 2005 7:54 pm Asunto: copiar tpanel a un timage? |
|
|
alguien sabe como se puede copiar el contenido d un tpanel a un timage? _________________ Jey U! I'm a Telecoman |
|
| Volver arriba |
|
 |
Fernando Diaz Master


Registrado: 18 Jul 2004Mensajes: 273Ubicación: Talavera de la Reina (Toledo)
|
Publicado: Lun 11 Abr, 2005 8:08 pm Asunto: |
|
|
aver prueba lo siguiente...(codigo de Leo ya respondido en este foro)
void ImprimirControl(TControl* ctr)
{
std::auto_ptr<TControlCanvas> ctrCanvas(new TControlCanvas);
ctrCanvas->Control = ctr;
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);
pms->SaveToFile("1.bmp"); // aqui lo guarda a un bmp luego sige tu..
//*/
delete pms;
}
llamalo asi ImprimirControl(TPanel); _________________ Los problemas mas dificiles tienen las soluciones mas sencillas
 |
|
| Volver arriba |
|
 |
LordNemesis Master


Registrado: 31 Dic 2003Mensajes: 340Ubicación: México
|
Publicado: Mar 12 Abr, 2005 4:41 am Asunto: |
|
|
Hola...
haciendo una pequeña mpodificacion al codigo de Fernando Díaz, podemos hacer lo que quieres...
| Código: |
void ImprimirControl(TControl* ctr,Graphics::TBitmap *Bitmap)
{
Graphics::TBitmap *bmp;
std::auto_ptr<TControlCanvas> ctrCanvas(new TControlCanvas);
ctrCanvas->Control = ctr;
bmp = new Graphics::TBitmap;
bmp->Width = ctr->ClientWidth;
bmp->Height = ctr->ClientHeight;
bmp->Canvas->CopyRect(ctr->ClientRect, ctrCanvas.get(), ctr->ClientRect);
Bitmap->Assign(bmp);
delete bmp;
}
|
y para mandarlo llamar seria asi:
| Código: |
ImprimirControl(Panel1,Image1->Picture->Bitmap);
|
Unm saludo y espero te funcione _________________ Dirección Municipal de Informática
H. Ayuntamiento de Tijuana
Arriba Lopez Obrador !!!
Los Mexicanos Merecemos Respeto !!! |
|
| Volver arriba |
|
 |
Eaco Lt JG

Registrado: 04 Nov 2004Mensajes: 58Ubicación: Las Palmas de Gran Canaria-Islas Canarias
|
Publicado: Mar 12 Abr, 2005 11:10 am Asunto: |
|
|
[quote="LordNemesis"]
std::auto_ptr<TControlCanvas> ctrCanvas(new TControlCanvas);
ctrCanvas->Control = ctr;
[/code]
Muchisimas gracias en primer lugar. En segundo me podrías explciar para que se hace esto exactamente? Finalmente algún manual para trabajar con gráficos es que es la primera vez que trabajo con gráficos e imágenes con el builder y estoy bastante perdido.
Muchas Gracias a los dos. _________________ Jey U! I'm a Telecoman |
|
| Volver arriba |
|
 |
Eaco Lt JG

Registrado: 04 Nov 2004Mensajes: 58Ubicación: Las Palmas de Gran Canaria-Islas Canarias
|
Publicado: Mar 12 Abr, 2005 4:56 pm Asunto: |
|
|
al compilar el codigo m da errores...
| Cita: | [C++ Error] Unit1.cpp(29): E2316 'auto_ptr' is not a member of 'std'
[C++ Error] Unit1.cpp(29): E2108 Improper use of typedef 'TControlCanvas'
[C++ Error] Unit1.cpp(29): E2268 Call to undefined function 'ctrCanvas'
[C++ Error] Unit1.cpp(30): E2288 Pointer to structure required on left side of -> or ->*
[C++ Error] Unit1.cpp(36): E2294 Structure required on left side of . or .*
|
_________________ Jey U! I'm a Telecoman |
|
| Volver arriba |
|
 |
Eaco Lt JG

Registrado: 04 Nov 2004Mensajes: 58Ubicación: Las Palmas de Gran Canaria-Islas Canarias
|
Publicado: Mar 12 Abr, 2005 6:04 pm Asunto: |
|
|
al final he hecho esto y parece q funciona, q opinan?
| Código: |
Graphics::TBitmap *mibmp = new Graphics::TBitmap;
mibmp->Width = Panel1->Width;
mibmp->Height = Panel1->Height;
mibmp->PixelFormat = pf8bit;
mibmp->Canvas->CopyRect(mibmp->Canvas->ClipRect,Canvas,Rect(Panel1->Left,Panel1->Top,Panel1->Left + mibmp->Width,Panel1->Top+mibmp->Height));
Image1->Picture->Bitmap = mibmp; |
_________________ Jey U! I'm a Telecoman |
|
| Volver arriba |
|
 |
|