Ver Mensaje Individual
  #4  
Antiguo 26-02-2015
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Reputación: 14
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(afAllItems, true, true); 
 
         
SetOlePicture(pic, pIPD); //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