PDA

Ver la Versión Completa : Al borrar un Timage me da error


Mr.Vaka
29-11-2005, 14:17:16
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.


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í:


Image1.Picture := nil;

O (puesto que no estoy seguro ahora y no recuerdo y no puedo probarlo) de este otro modo:


Image1.Picture.Bitmap := nil;

marcoszorrilla
29-11-2005, 15:19:03
Quizás buscas algo como:

image1.Picture.Assign(nil);


Un Saludo.

Mr.Vaka
29-11-2005, 15:22:39
Funciona perfectamente, muchas gracias!!!