Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.012 c
1-38795
михаил
2004-02-02 00:23
2004.02.13
цикл в обьекте


1-38925
Пубертанец
2004-02-04 11:01
2004.02.13
StringGrid


14-39038
Nick-From
2004-01-26 02:42
2004.02.13
Прога учета трафика на компах в интернет кафе


3-38670
Rafe
2004-01-24 21:05
2004.02.13
Вылетает ошибка при выходе из программы!!! Причина - Data Module.


1-38921
snake1977
2004-02-04 13:28
2004.02.13
посоветуйте





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский