Dziwny błąd przy 32 elementowej tablicy Timage

0

Witam ! Zadeklarowałem 32 elementową tablicę jednowymiarową z elementami typu Timage

obrazki:array[1..32]of Timage;

jeżeli tworzę w pętli po kolei obrazki

for a:=1 to 32 do
begin
obrazki[a]:=Timage.create(form1);
.... pozostałe parametry
obrazki[a].tag:=a;
end;

wszystko jest ok, jednak kiedy dodam przy tworzeniu linijkę

showmessage(inttostr(obrazki[a].tag));

czyli

for a:=1 to 32 do
begin
obrazki[a]:=Timage.create(form1);
.... pozostałe parametry takie jak width, height...
obrazki[a].tag:=a;
showmessage(inttostr(obrazki[a].tag));
end;

zaraz po 24 elemencie pojawia się błąd "Acces violation...". Nawet jeśli zmniejszę pętlę do 31 albo 30 a tablica ma nadal 32 elementy - nadal pojawia się błąd :/ po 24 elemencie! Dopiero zwiększenie tablicy do 33 eliminuje ten błąd. Testowałem ten kod zarówno na Delphi 2005 jak i 2007 - tak samo się sypie! W czym jest problem? Bo ja nie mam pojęcia...

0
procedure TForm1.Button1Click(Sender: TObject);
var ImageTab: array [1..32] of TImage;
  Image: TImage;
  i: Integer;
begin
  try
    for i := Low(ImageTab) to High(ImageTab) do
    begin
      if not Assigned(Image) then Image := TImage.Create(Self);
      Image.Tag := i;
      Showmessage(IntToStr(i));
      ImageTab[i] := Image;
    end;
  except
    on E: Exception do raise Exception.Create('Some problems');
  end;
end;

a tak <ort>w ogóle </ort>to po co?
nie lepiej TimageList ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1