Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Al borrar un Timage me da error (https://www.clubdelphi.com/foros/showthread.php?t=27734)

Mr.Vaka 29-11-2005 14:17:16

Al borrar un Timage me da error
 
Estoy intentando de hacer este truco, de extraer el icono de un archivo a un Timage, el problema es que si uso el truco varias veces seguidas no se borra el icono anterior que había en el Timage y me pone uno encima y se ven varios iconos al principio del codigo intento poner image1.free; pero me da error, como puedo areglar.

Espero que me aiga explicado bien saludos.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  Icono:TIcon;
  Indice:word;
begin
  {borro la imagen}
  Image1.free;
  Icono:=TIcon.Create;
  {Indice del icono a extraer}
  {Icon Index to extract}
  Indice:=0;
  Icono.handle:=ExtractAssociatedIcon(hInstance,Pchar('c:\kk\dlib.zip'),Indice);
  Image1.Picture.Bitmap.Width:= Icono.Width;
  Image1.Picture.Bitmap.Height:= Icono.Height;
  Image1.Picture.Bitmap.Canvas.Draw(0,0,Icono);
  Icono.Free;
end;

epuigdef 29-11-2005 14:58:44

Si utilizas el free del image1 lo estás eliminando de la memoria, debes utilizar el método clear, pero no sé si está a nivel de image1.clear, o image1.picture.clear, o image1.picture.bitmap.clear.

No tengo el Delphi a mano, pruebalo tu mismo.

Edu

Mr.Vaka 29-11-2005 15:11:07

No existe el clear en un timage

dec 29-11-2005 15:14:45

Hola,

Hazlo así:

Código Delphi [-]
Image1.Picture := nil;
O (puesto que no estoy seguro ahora y no recuerdo y no puedo probarlo) de este otro modo:

Código Delphi [-]
Image1.Picture.Bitmap := nil;

marcoszorrilla 29-11-2005 15:19:03

Quizás buscas algo como:
Código Delphi [-]
 image1.Picture.Assign(nil);

Un Saludo.

Mr.Vaka 29-11-2005 15:22:39

Funciona perfectamente, muchas gracias!!!


La franja horaria es GMT +2. Ahora son las 17:05:57.

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