• Lunes 29 de Abril de 2024, 05:33

Autor Tema:  Guardar Imagenes en Builder???  (Leído 2344 veces)

el bare

  • Miembro activo
  • **
  • Mensajes: 65
  • Nacionalidad: mx
    • Ver Perfil
Guardar Imagenes en Builder???
« en: Jueves 16 de Julio de 2009, 05:04 »
0
Que tal, ahora con esta duda...
Tengo un grafico en un form, es un objeto chart, y queria saber como guardar ese grafico como imagen.
en otro foro me pasaron esta funcion, pero guarda toda la ventana del form:... :hitcomp:

Código: C++
  1.  
  2.  
  3.     void GuardarImagenDelControl(TWinControl *Control, AnsiString FileName)
  4.        {
  5.        HDC DC;
  6.        Graphics::TBitmap *BitmpPrueba = new Graphics::TBitmap();
  7.        try{
  8.           BitmpPrueba->Width = Control->Width;
  9.           BitmpPrueba->Height = Control->Height;
  10.  
  11.           DC = GetWindowDC(Control->Handle);
  12.           BitBlt(BitmpPrueba->Canvas->Handle, 0, 0, Control->Width, Control->Height, DC, 0, 0, SRCCOPY);
  13.           ReleaseDC(Control->Handle, DC);
  14.           BitmpPrueba->SaveToFile(FileName);
  15.           }
  16.     __finally{
  17.        delete BitmpPrueba;
  18.        }
  19.        }
  20.  
  21.  
  22.  

esto va en el boton de guardar:

Código: C++
  1.  
  2.     GuardarImagenDelControl(Form1,"c:\prueba.bmp");
  3.  
  4.  

en fin, queria ver si me pueden decir la funcion para guardar solo lo del grafico, y aprovechando, si me pueden decir como implementar un saveimage dialog  para darle la opcion al usuario de donde guardar la imagen.... :comp:

o si hay una opcion mas facil, se los agradeceria... :D

Saludos... ^_^

TRod

  • Miembro MUY activo
  • ***
  • Mensajes: 108
  • Nacionalidad: mx
    • Ver Perfil
Re: Guardar Imagenes en Builder???
« Respuesta #1 en: Jueves 16 de Julio de 2009, 16:41 »
0
Te voy a dar una pista para que te rias de ti mismo un rato:

GuardarImagenDelControl(Form1,"C:\prueba.bmp");// ¿ <_< ?  TWinControl*?

Y en cuanto a la implementacion de un TSavePictureDialog no se hasta donde llegan tus dudas. Pero, ¿te sirve esto?:

Código: Text
  1.  
  2. if(!SavePictureDialog1->Execute()) //Si cancela la accion, bye.
  3.  return;
  4. Guardo_mi_Imagen(Imagen, SavePictureDialog1->FileName );
  5.  
  6.  

el bare

  • Miembro activo
  • **
  • Mensajes: 65
  • Nacionalidad: mx
    • Ver Perfil
Re: Guardar Imagenes en Builder???
« Respuesta #2 en: Viernes 17 de Julio de 2009, 02:05 »
0
Que tal TRod, la verdad es que no entiendo lo que me quieres decir con lo de la pista... :unsure:
TWinControl......... :unsure:
Respecto al saveimage no entiendo lo de guardar_imagen, es el nombre de la funcion???
 soy nuevo en builder y no se demasiadas cosas... :wacko:



Saludos.. :hola:

TRod

  • Miembro MUY activo
  • ***
  • Mensajes: 108
  • Nacionalidad: mx
    • Ver Perfil
Re: Guardar Imagenes en Builder???
« Respuesta #3 en: Viernes 17 de Julio de 2009, 05:22 »
0
En pocas palabras el twincontrol es la clase de la cual descienden la gran mayoria de los objetos visuales que se usan, por ejemplo los Forms, Edits, Buttons, etc... entre ellos esta el TChart... O sea el problema es simple: cambia el parametro.

GuardarImagenDelControl(  MiChart  ,"C:\prueba.bmp");

El guardar_imagen solo fue un ejemplo. Lo que quice fue mostrarte el uso de los 2 miembros mas usuales de un cuadro "Dialog":
Execute().- Muestra el Cuadro de dialogo. (Retorna falso si el usuario Cancela el cuadro)
FileName.-AnsiString que contiene el nombre de Archivo escogido por el usuario.
(Dale un vistazo a la propiedad Options, ayuda al tipo de comportamiento que tendra el "Dialog")
El probable codigo que necesitas puede ser este:

Código: Text
  1.  
  2. if( !Dialogo->Execute() )  //Muestro el cuadro de dialogo y lo evaluo
  3.            return;     //No paso nada, Adios.
  4. GuardarImagenDelControl( MiChart , Dialogo->FileName );  //Guardo la imagen donde el Usuario lo solicito
  5.  
  6.  
Parece que eso es todo lo q' necesitas.
Saludos y Suerte.

el bare

  • Miembro activo
  • **
  • Mensajes: 65
  • Nacionalidad: mx
    • Ver Perfil
Re: Guardar Imagenes en Builder???
« Respuesta #4 en: Viernes 17 de Julio de 2009, 06:45 »
0
Q tal, ahora si ya te entendi.,........ :D

ahora si guarda el grafico solamente.
respecto al savedialog es exactamente lo que buscaba... ^_^


Muchisimas Gracias............ :lol:


Saludos... :hola: