List Index out of bounds

0

Nie mogę zrozumieć gdzie mam błąd. Na liście mam 4 kolumny, tak więc jedna główna i 3 subitemy (0, 1, 2). Chcę je przenieść z zaznaczonego wiersza do editów i memo, ale nie mogę, bo problemem jest ostatnia kolumna. Gdy próbuję ją przenieść, zedytować, wyświetlić w showmessage czy co kolwiek to mam ten błąd co w temacie. To mój kod:

procedure TForm1.KolejkaSelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
var
zaznaczony:integer;
begin

if selected = true then

begin
zaznaczony:=Kolejka.Selected.Index;

if Kolejka.Selected.Caption = 'Nowy' then
begin
  EditTemat.Enabled:=True;
  EditPost.Enabled:=True;
  EditGodzina.Enabled:=True;
  ZapiszPost.Enabled:=True;
  EditTemat.Text:=Kolejka.items.item[zaznaczony].SubItems[0];
  EditPost.Text:=Kolejka.items.item[zaznaczony].SubItems[1];
  EditGodzina.Text:=Kolejka.items.item[zaznaczony].SubItems[2]; // ta linia powoduje błąd
end
else
 begin
  showmessage('stary') ;
  EditTemat.Text:='';
  EditPost.Text:='';
  EditGodzina.Text:='';
  EditTemat.Enabled:=False;
  EditPost.Enabled:=False;
  EditGodzina.Enabled:=False;
  ZapiszPost.Enabled:=False;
 end;
end;

end; 

Rozumiem gdybym miał za mało kolumn, ale nawet jak dodam kolejną to i tak ten błąd jest, więc czemu nie potrafi odwołać się do subitemu dalszego niż 0 i 1?

Siedzę nad tym 30 minut i nie mogę zrozumieć gdzie jest błąd.

1

Pokaż kod, który wypełnia Kolejka. Wróżbitów u nas coś brakuje...

0

Ah myślałem że to problem w tym kodzie co dałem, ale problem rzeczywiście był w dodawaniu do kolejki - po prostu nie dawałem tego ostatniego subitemu. Myślałem że jak nie dodam to będzie puste i tyle.

Więc problem rozwiązany, dzięki za naprowadzenie

0

EditTemat.Text:=Kolejka.items.item[zaznaczony].Caption;
EditPost.Text:=Kolejka.items.item[zaznaczony].SubItems[0];
EditGodzina.Text:=Kolejka.items.item[zaznaczony].SubItems[1];

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