Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   union de codigos (https://www.clubdelphi.com/foros/showthread.php?t=80022)

lisette 28-08-2012 23:47:45

union de codigos
 
Este primer codigo que es para acceder al contenido de un .res
Código Delphi [-]
TResourceStream *Resource = new TResourceStream((int)HInstance, 3, RT_RCDATA);
Image1->Picture->Bitmap->LoadFromStream(Resource);

Este segundo codigo es para cambiar el fondo de pantalla.
Código Delphi [-]
SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0,"1.bmp", SPIF_SENDCHANGE);

Quisiera que de algun modo el fondo de pantalla se cambiara con la imagen que tengo almacenada en el .res.

ecfisa 29-08-2012 00:34:52

Hola.

Una forma en que podrías hacerlo:
Código:

void __fastcall TFPrincipal::FormCreate(TObject *Sender)
{
  TResourceStream *Resource = new TResourceStream((int)HInstance, 1, RT_RCDATA);
  TJPEGImage *JImage = new TJPEGImage;
  char *ImageName = "IMG@@@.JPG";  /* cualquier nombre que sepas que no existirá */

  __try {
    JImage->LoadFromStream(Resource);
    JImage->SaveToFile(ImageName);
    SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, ImageName, SPIF_SENDCHANGE);
    DeleteFile(ImageName);
  }
  __finally {
    delete Resource;
    delete JImage;
  }
}

Ya que he notado que en ningúno de tus mensajes anteriores has comentado si te han servido las propuestas sugeridas, aprovecho para pedirte que leas con atención nuestra guía de estilo. (En especial el punto 13)

Saludos y gracias por tu colaboración.

lisette 29-08-2012 23:29:00

union de codigo
 
Disculpa por no decir si mes funciono pero los estaba probando.

Al codigo le tuve que hacerle un cambio puesto a que solo me admite imagenes .bmp para cambiar de fondo
Código Delphi [-]
void __fastcall TFPrincipal::FormCreate(TObject *Sender)
{
  TResourceStream *Resource = new TResourceStream((int)HInstance, 1, RT_RCDATA);
   char *ImageName = "IMG@@@.bmp";

  __try {
    Image1->Picture->Bitmap->LoadFromStream(Resource);
    Image1->Picture->Bitmap->(ImageName);
    SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, ImageName, SPIF_SENDCHANGE);
    DeleteFile(ImageName);
  }
  __finally {
    delete Resource;
    delete JImage;
  }
}
]

El codigo funciono a la perfeccion gracias.


La franja horaria es GMT +2. Ahora son las 04:55:03.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi