Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

error al cerrar aplicacion 2

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: error al cerrar aplicacion 2 Responder citando

Hola Foro

Ya descubrí en que punto es que falla mi aplicacion y por el cual saca el
error

/* TCustomForm.Destroy */ inline __fastcall virtual ~TForm(void) { }

al cerrar la aplicacion.

Tengo definido en el metodo

void __fastcall TForm2::Button1Click(TObject *Sender)

el siguiente codigo

Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
pBitmap->PixelFormat = pf8bit;
pBitmap->Height = 256;
pBitmap->Width = 256;

try{
pBitmap = Image1->Picture->Bitmap;
...

delete pBitmap;
}
catch(...)
{ ... }

Pero el error aparece cuando hago la declaracion

pBitmap = Image1->Picture->Bitmap;

y en cambio cuando la hago de la forma

pBitmap->Assign(Image1->Picture->Bitmap);

no me da ningun error. El caso es que si lo hago de la segunda forma la
calidad de la imagen se me distorciona y no quiero que esto pase.

Alguien sabe el por que de este error

Gracias por su valiosa colaboracion.
Volver arriba
Mensaje    Asunto: Responder citando

Cita:
Pero el error aparece cuando hago la declaracion

pBitmap = Image1->Picture->Bitmap;

y en cambio cuando la hago de la forma

pBitmap->Assign(Image1->Picture->Bitmap);

no me da ningun error.

Supongo que has leído el post donde te contestan a como copiar una imagen (https://cppbuilder.es/viewtopic.php?t=6010), porque en este caso si estas haciendo una burrada como diría Toño Wink porque pBitmap no es una propiedad sino un puntero y lo estas sobrescribiendo con el valor de otro y luego claro al liberarlo tendrás problemas. En este caso la segunda forma que pones es la correcta.
Cita:
El caso es que si lo hago de la segunda forma la
calidad de la imagen se me distorciona y no quiero que esto pase.

La posible culpable de esa "distorsion" es la siguiente linea:

    pBitmap->PixelFormat = pf8bit;

es posible que estes intentando copiar una imagen de mas de 256 colores, y con esta línea le estas indicando que al copiarse se reduzca a 256, puedes o bien asignarle pf16bit, pf24bit, pf32bit, etc... según la paleta de la imagen o bien:

    pBitmap->PixelFormat = Image1->Picture->Bitmap->PixelFormat;
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.