Podrias crear una lista de los componentes que vas creando y los destruis o los reutilizas en la nueva consulta.
Algo asi:
Declaras la lista, en el private de tu form
lo creas en el FormCreate
en FormDestroy lo destruis
Código Delphi
[-]
for i:= 1 to Images.Count do
begin
Image := Images.Items[i-1];
Image.Free;
end;
Images.Free;
y lo usas asi:
Código Delphi
[-]
var
i: integer;
Image: TImage;
NombreImg: string;
begin
i:= 0;
while not Datages.tadeposito.Eof do
begin
inc(i);
if i > Images.Count then
Image := TImage.Create
else
Image := List.Items[i-1];
NombreImg:= Trim(datages.tadepositoBODEPO.Value) + 'deposito' + Trim(datages.tadepositoCLADEPO.Value) + '.bmp';
imag.Parent:= Self;
imag.Name:= 'deposito' + Trim(datages.tadepositoCLADEPO.Value);
imag.Top:= datages.tadepositoYDEPO.Value;
imag.Left:= datages.tadepositoXDEPO.Value;
imag.Picture.LoadFromFile(ExtractFilePath(Application.ExeName) + 'imagenes/depositos/' + NombreImg);
datages.tadeposito.Next;
end;
end;
No he probado el codigo, asi que puede contener errores.