Форум: "Основная";
Текущий архив: 2004.02.13;
Скачать: [xml.tar.bz2];
ВнизВ чем трабла с 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 вся ветка
Форум: "Основная";
Текущий архив: 2004.02.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.017 c