Ver Mensaje Individual
  #4  
Antiguo 26-02-2015
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Reputación: 11
aguml Va por buen camino
Amigos ya he conseguido obtener la imagen desde el componente a un archivo pero sigo con el problema de los 8 bytes de mas y ni siquiera pasa por la funcion que indican en la funcion que habia que parchear. El problema tiene que estar en otro lugar y no tengo ni idea. Te pongo como queda el codigo para guardar la imagen en un archivo a espensas de poder solucionar lo de los 8 bytes:
Código PHP:
void __fastcall TFormMain::ButtonSaveImageClick(TObject *Sender

   
//ShowMessage("Esta opcion no es funcional por ahora."); 
 
   
TPicture *pic
   
_di_IPictureDisp pIPD
   
bool error false
 
   try 
   { 
      
pic = new TPicture//Solicito memoria para el TPicture 
   
}catch(std::bad_alloc&){ 
      
error true
   } 
 
   if(
error == true){ 
      
ShowMessage("No hay memoria suficiente para realizar esta acción."); 
   }else{ 
      try 
      { 
         
//ExportPicture devuelve un IPictureDisp** y quiero pasarlo a un _di_IPictureDisp 
         
pIPD = (IPictureDisp*)AddFlow1->ExportPicture(afAllItemstruetrue); 
 
         
SetOlePicture(picpIPD); //Paso la imagen del IPictureDisp al TPicture 
 
         
SaveDialog1->Filter "Enhanced Metafile Format|*.emf"
         if(
SaveDialog1->Execute()){ 
            
SaveDialog1->FileName ChangeFileExt(SaveDialog1->FileName".emf"); 
            
pic->SaveToFile(SaveDialog1->FileName); 
         } 
      }catch(...){ 
         
ShowMessage("Fallo al copiar la imagen al portapapeles."); 
      } 
      
delete pic//Libero la memoria del TPicture 
   


Responder Con Cita