拖动记录改变行序

适用情况:各种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; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值