-
Так и есть, убедился эмпирически сейчас ;)
> ОбновитьЭлементИОтметитьКакОбновлённый();
как понять - отметить как обновленный?
-
foreach ifItem in pIfTable do
и откуда взялось ifItem?
-
Кроме того, не совсем ясна твоя логика: смотри, вот у нас список
1 5
2 300
3 44
и если 1 есть, то обновим его и пометим как обновленный, если, скажем, 4 нету, то добавим и пометим как обновленный. А откуда ж тогда возьмутся необновленные?
-
>[60] ob_kun (2008-07-08 17:35:00)
>как понять — отметить как обновленный?у каждого элемента
свой флажок «меня на этой итерации трогали».
>[61] ob_kun (2008-07-08 17:36:00)
>и откуда взялось ifItem?это переменная-итератор. в данном смысле конструкция foreach примерно так раскрывается:
var
a: array [1..10] of Integer;
item: Integer;
cnt: Integer;
…
for cnt := 0 to High(a) do
item := a[cnt];
….
end;
>[62] ob_kun (2008-07-08 17:47:00)
>А откуда ж тогда возьмутся необновленные?пришёл марсианец и украл один сетевой интерфейс.
---
Do what thou wilt shall be the whole of the Law.
-
> у каждого элемента свой флажок «меня на этой итерации трогали».
а флажок этот как реализуется?
> это переменная-итератор.
а тип у нее какой?
> пришёл марсианец и украл один сетевой интерфейс.
вот заразна душа)
-
> а флажок этот как реализуется?
неужто придется вводить доп лист, индексы которого соответствуют индексам в ListView?
-
>[64] ob_kun (2008-07-08 17:56:00)
>а флажок этот как реализуется?как программист захочет. главное, чтобы с каждым элементом был чётко связан свой флажок.
>а тип у нее какой?посмотри на мой код-расшифровку внимательно.
>вот заразна душа)— Цан, извини, а вот такие, с хоботками, это кто? — спросил Гедеван.
— Никто. Фитюльки.
— В каком смысле?
— Во всех. Болтают, что они тут раньше, до плюкан жили. Но это так… Треп.
---
All Your Base Are Belong to Us
-
>[65] ob_kun (2008-07-08 17:59:00)
>неужто придется вводить доп лист, индексы которого соответствуют индексам в
>ListView?
у item есть чудное свойство data.
---
All Your Base Are Belong to Us
-
> посмотри на мой код-расшифровку внимательно.
такое чувство, что коли все типа Integer, а pIfTable типа PMibIfTable, то и ifItem должна быть типа PMibIfTable ))))
-
Свойство это типа Pointer, а как его припихнуть, на что сослаться - тоже вопрос....
a = 1; // отмечен
lv.Items[0].Data := @a;
?
-
Или просто
lv.Items[0].Data := Pointer(1);
...
lv.Items[1].Data := Pointer(0);
?
-
>[70] ob_kun (2008-07-08 18:12:00)
вот это мысль верная. %-)
>[68] ob_kun (2008-07-08 18:06:00)
>такое чувство, что коли все типа Integer, а pIfTable типа PMibIfTable, то и ifItem
>должна быть типа PMibIfTable ))))
это потому, что в Delphi нет foreach. точнее, не было. %-) вот и непривычно. ничего, потом пригодится когда-нибудь.
---
Understanding is not required. Only obedience.
-
Так по поводу типа ifItem я верно угадал???
-
Я просто не совсем понимаю, как переложить аналогию с массивом на структуру.
-
>[73] ob_kun (2008-07-09 12:58:00)
да пофигу. первый цикл у тебя верный, оставь тот псевдокод. я просто твой цикл короче переписал, потому что ленивый.
---
All Your Base Are Belong to Us
-
Ты имеешь ввиду, оставить for i := 0 to pIfTable.dwNumEntries-1 do
begin
....
?
-
>[75] ob_kun (2008-07-09 14:01:00)
угу. это и есть foreach, только выраженый более многословно. %-)
---
All Your Base Are Belong to Us
-
Завтра постараюсь написать процедуру в более-менее нормальном варианте. Остался еще вопрос - как ты представляешь себе, что суть процедура IsItemInList ? Как она должна осуществлять поиск элемента? По имени интерфейса (добавить отображение wszName) ?
-
>[77] ob_kun (2008-07-09 23:34:00)
да хоть и так. или по адресу, например.
---
All Your Base Are Belong to Us
-
А есть какая-то возможность, чтобы поля в ListView были, но их не было видно? Или стоит просто писать в Tag у элементов первой колонки значение wszName?