List Index out of bounds

Odpowiedz Nowy wątek
2011-07-13 13:54
NewbBB
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.

Pozostało 580 znaków

2011-07-13 14:01
1

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

Pozostało 580 znaków

2011-07-13 14:33
NewbBB
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

Pozostało 580 znaków

2011-07-13 16:21
0

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


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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