Вниз
Скачать: CL | DM;

В чем трабла с ListItems не пойму.........   Найти похожие ветки 

← →
Senti   (2004-02-04 17:44) [0]

Вод код

-> tmp - тип Record

procedure TForm1.ProcessItems;
var i,j: integer;
s : string;
it : TListItem;
begin
while witems.Count > 0 do
begin
tmp.tip:=witems[0].Caption;
tmp.ip:=witems[0].SubItems[0];
tmp.traf:=witems[0].SubItems[1];
tmp.port:=witems[0].SubItems[2];

j:=0;
while j <= witems.Count-1 do
begin
j:=j+1;


// Здесь происходить ошибка Acces violation.... Отметил стрелочкой

-> if tmp.ip = witems[j].SubItems[0] then
if tmp.tip = witems[j].Caption then
begin
tmp.traf:=IntToStr(StrToInt(tmp.traf)+StrToInt(witems[j].SubItems[1]));
s:=witems[j].SubItems[2];
if pos(s,tmp.port) = 0 then tmp.port:=tmp.port+", "+s;
witems.Delete(j);
j:=j-1;

ShowMessage(witems[j].SubItems[0]);
end;
end;


witems.Delete(0);

it := lv.Items.Add;
it.Caption:=tmp.tip;
it.SubItems.Add(tmp.ip);
it.SubItems.Add(tmp.traf);
it.SubItems.Add("");
it.SubItems.Add(tmp.port);
end;

end;


Никак не пойму из-за чего вылетает ошибка... Причем при первом же вхождении. Если добавить ShowMessage перед той строчкой то работает.... Очень странно


← →
Семен Сорокин ©   (2004-02-04 17:52) [1]

j:= -1;


← →
Johnmen ©   (2004-02-04 17:56) [2]

>Семен Сорокин © (04.02.04 17:52) [1]

И до кучи, в конце

j=witems.Count !!!!!!!!!!!!!!!


← →
Senti   (2004-02-04 18:04) [3]

Хм... мне j:=-1 не нужно т.к. идет поиск похожего элемента остальном массиве итемов и начинаться цикл должен с items[1]...
И как это значение влияет j=witems.Count на acess violation !


← →
Семен Сорокин ©   (2004-02-04 18:07) [4]

И как это значение влияет j=witems.Count на acess violation !
а так что:
условие while j <= witems.Count-1 do проходит
//j = witems.Count-1
а дальше ты увеличиваешь счетчик:
j:=j+1;


← →
Senti   (2004-02-04 18:07) [5]

когда я добавляю ShowMEssage перед строчкой
if tmp.ip = witems[j].SubItems[0]
все работает... а если без него нет


← →
Johnmen ©   (2004-02-04 18:08) [6]

>И как это значение влияет j=witems.Count на acess violation !

Обращение за границы массива... Описание которого ты не привёл...


← →
Senti   (2004-02-04 18:12) [7]

witems : TListItems - массив описанный вначале программы и заполнен данными...
Странно все это.... Ведь если делать ShowMessage(witems[j].SubItems[0]) перед той строчкой все работает и выдает данные... если без него выскакивает Access violation... Read.....



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.016 c
1-38795
михаил
2004-02-02 00:23
2004.02.13
цикл в обьекте


1-38833
Vi0let
2004-02-04 03:03
2004.02.13
Прога при запуске виснет с экраном 640х480 16 цветов.


1-38823
SeriousSam
2004-02-02 20:48
2004.02.13
Как сделать чтоб нажатие entera было равно нажатию на Button1?


3-38741
Oleg_em
2004-01-21 13:59
2004.02.13
Активные пользователи в IB


14-39078
ИМХО
2004-01-23 22:45
2004.02.13
Теория Большого Взрыва




   Наверх