Хотя, всё равно глючно работало. После трёх часов мучений пришёл к выводу, что надёжнее будет просто перебором. Вот даже кусочек кода, в котором показано это:
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | Procedure TForm10 . Ochered(Rayon_name: String );
var
st_count1,qx: integer ;
Begin
Table2 . Active:= True ;
Table2 . Open;
Table2 . First;
st_count1:=Form1 . ListBox1 . Items . Count- 1 ;
For qx:= 0 to st_count1 do
begin
If Table2 . Locate( 'ID' ,Form1 . ListBox1 . Items . Strings[qx],[loCaseInsensitive]) then
begin
Table2 . Edit;
Table2 . Fields[ 0 ].AsString:=Form1 . ListBox1 . Items . Strings[qx];
Table2 . Fields[ 1 ].AsString:= 'NNN' ;
Table2 . Fields[ 3 ].AsString:=IntToStr(qx+ 1 );
Table2 . Post;
Table2 . FlushBuffers;
end
else
begin
Table2 . Append;
Table2 . Fields[ 0 ].AsString:=Form1 . ListBox1 . Items . Strings[qx];
Table2 . Fields[ 1 ].AsString:= 'NNN' ;
Table2 . Fields[ 3 ].AsString:=IntToStr(qx+ 1 );
Table2 . Post;
Table2 . FlushBuffers;
end ;
end ;
Table2 . FlushBuffers;
Table2 . Close;
Table2 . Active:= False ;
end ;
end ;
|
Вызывать процедуру при событии ListBox1
EndDrag.
Вроде всё так, может кому-то понадобится