Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.13;
Скачать: 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 вся ветка

Текущий архив: 2004.02.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.036 c
14-38997
kaif
2004-01-27 03:26
2004.02.13
Фолио-WinСклад


3-38735
Александр Богданов
2004-01-19 20:35
2004.02.13
сводные таблицы средствами SQL


7-39114
Zaratustra
2003-11-27 13:20
2004.02.13
Хук клавиатуры


14-39061
Thor
2004-01-24 23:58
2004.02.13
Спрятать иконку в Systray...


1-38846
AndersoNRules
2004-02-02 12:41
2004.02.13
Mojno li sapihnuti kod DLL v uje gotovuyu exe shku?