|
#1
|
|||
|
|||
Список List хз
в цикле бегаю по листу, нужно удалить 2 значения i+1 и i+2, а на их место вставить дрегое одно. Пишу
lz.Delete(i+1); lz.Delete(i+1); x0:=round(t1*x2+(1-t1)*x1); y0:=round(t1*y2+(1-t1)*y1); pt.long:=x0; pt.lat:=y0; mn.xy_zab:=pt; lz.Insert(((i+1) mod lz.Count),mn); в результате эти 2 точки заменяются на нужную, но пропадает следующий элемент. Т.е. i+3 (до операции) который |
#2
|
||||
|
||||
который что....?
|
#3
|
|||
|
|||
этот элемент был i+3-тьим до замены, потом соответственно должен стать i+2, но он пропадает из списка.
Элементы в списке PDoublePoint, (pt.long pt.lat) |
#4
|
|||
|
|||
ПОМОГИТЕ ЖЕ !!!!!
мне пока удалось только найти, что этот эл. не пропадает, а принимает значение новодобавленного, почему так происходит, ума не приложу((( |
#5
|
|||
|
|||
У меня всё работает:
Код:
var i:integer = 0; procedure TForm1.Button1Click(Sender: TObject); var lz: TStrings; begin lz:= ListBox1.Items; lz.Delete(i+1); lz.Delete(i+1); lz.Insert(((i+1) mod lz.Count),'new'); end; |
#6
|
|||
|
|||
ошибка была вот в чём:
пропущено new(mn); new(pt); |