Wie wäre es, wenn du statt dem = ein <= nimmst? So wie es jetzt ist, geht das nur, wenn der Computer es exakt in der richtigen Millisekunde schafft.
EDIT: Der Fehler liegt noch wo ganz anders. Du musst es so machen:
Delphi-Quellcode:
procedure TForm1.trash;
var start:longint;
i:integer;
begin
repeat
start:=gettickcount;
repeat Application.ProcessMessages until GetTickCount>=start+50;
image4.picture.LoadFromFile('.\pics\trash_open1.bmp');
repeat Application.ProcessMessages until GetTickCount>=start+100;
image4.Picture.loadfromfile('.\pics\trash_open2.bmp');
repeat Application.ProcessMessages until GetTickCount>=start+150;
image4.Picture.LoadFromFile('.\pics\trash_blum.bmp');
repeat Application.ProcessMessages until GetTickCount>=start+250;
image4.Picture.loadfromfile('.\pics\trash.bmp');
inc(i);
until i=10;
end;