適用情況:各種GRID
要求:1 行序字段數據類型爲實型,且數據根據此字面排序
2 拖動時觸發動作產生startdragid值,放下時產生enddragid值,
行序修改的代碼
procedure dragmove(startid,enddragid:real;orderlist:string;destination:tdataset);
var
neighborid,currentid:Real;
begin
if enddragid<=startdragid then
begin
destination.Prior;
if destination.bof then
neighborid:=-1
else
neighborid:=destination.fieldbyname(orderlist).Value;
end
else
begin
destination.next;
if destination.eof then
neighborid:=enddragid+1
else
neighborid:=destination.fieldbyname(orderlist).Value;
end;
if destination.Locate(orderlist,startdragid,[loCaseInsensitive]) then
begin
with destination do
begin
Edit ;
currentid:=(enddragid+neighborid)/2;
FieldByName(orderlist).AsFloat :=currentid;
Post ;
Close;
Open ;
Locate(orderlist,currentid,[loCaseInsensitive])
end;
end;
end;