Ver Mensaje Individual
  #2  
Antiguo 30-12-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Probe tu código y funciona de forma correcta, solo lo modifiqué un poco para darle reusabilidad:
Código PHP:
...
#include<clipbrd.hpp>
...

void WinCtrlToClipboard( TWinControl *wCtrl )
{
  
TClipboard *cb = Clipboard();
  
Graphics::TBitmap *bmp = new Graphics::TBitmap;
  
HDC hdc = GetWindowDC( wCtrl->Handle );

  
bmp->Width  = wCtrl->Width;
  
bmp->Height = wCtrl->Height;
  
BitBlt( bmp->Canvas->Handle, 0, 0, bmp->Width, bmp->Height, hdc, 0, 0, SRCCOPY );
  
cb->Assign( bmp );

  
ReleaseDC( wCtrl->Handle, hdc );
  
delete bmp;
} 
Ejemplo de uso:
Código PHP:
void __fastcall TForm1::Button1Click(TObject *Sender)
{

  if ( 
fFicPer == NULL ) 
    
fFicPer = new TfFicPer( NULL );
  
Graphics::TBitmap *dest = fFicPer->QRImage1->Picture->Bitmap;

  
WinCtrlToClipboard( this );
  
dest->LoadFromClipboardFormat( CF_BITMAP, Clipboard()->GetAsHandle(CF_BITMAP), 0 );
  
fFicPer->qFicPer->Preview();

  
delete fFicPer;
  
fFicPer = NULL;
} 
Form:


Preview:


Declaré el parámetro de modo que la función pueda recibir cualquier descendiente de TWinControl, de modo que las siguientes llamadas tambien son correctas:
Código PHP:
  WinCtrlToClipboard( Panel1 );
  ...
  
WinCtrlToClipboard( Edit3 );
  ... 
  
WinCtrlToClipboard( Button1 );
  ... 
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 31-12-2016 a las 01:51:43. Razón: Desglosar función WinCtrlToClipboard
Responder Con Cita