• Delphi DBGrid记录全选和反选拖动处理


    DBGrid1.DragMode   :=   dmManual;//留意这个设置不要变

    procedure ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);

    procedure TForm18.ApplicationEvents1Message(var Msg: tagMSG;
    var Handled: Boolean);
    begin
    case   Msg.message   of
              WM_LBUTTONDOWN:
              begin
                  if   Msg.hwnd   =   DBGrid1.Handle   then
                  begin
                      DBGrid1.Perform(Msg.message,   Msg.wParam,   Msg.lParam);
                      DBGrid1.DragMode   :=   dmAutomatic;
                  end;
              end;
              WM_LBUTTONUP:   DBGrid1.DragMode   :=   dmManual;
          end;
    end;

    ---------------------------------------------------------------

    procedure TForm10.SpeedButton7Click(Sender: TObject);

    //全选

    begin
       with DBGrid1.datasource.dataset do
       begin
          First;
          while not dm.AQ_personal.EOF   do
          begin
             DBGrid1.SelectedRows.CurrentRowSelected := True;
             dm.AQ_personal.Next;
          end;
       end;
    end;

    procedure TForm10.SpeedButton8Click(Sender: TObject);//反选
    var
    i:integer;
    SavePlace:TBookmarkList;
    begin
    DBGrid1.DataSource.DataSet.DisableControls;
    for   i:=1   to   DBGrid1.DataSource.DataSet.RecordCount   do
    begin
        DBGrid1.DataSource.DataSet.RecNo:=i;
        DBGrid1.SelectedRows.CurrentRowSelected:=Not DBGrid1.SelectedRows.CurrentRowSelected;
    end;
    SavePlace:=DBGrid1.SelectedRows;
    //    DBGrid1.DataSource.DataSet.GotoBookmark(Pointer(SavePlace[0]));//将指针指向当前选择的第一条记录
    DBgrid1.DataSource.DataSet.EnableControls;
    end;

  • 相关阅读:
    根据excel的文件的路径提取其中表的数据到DataSet中 .
    查询SQL Server数据库中的用户表的数量的问题
    C#获取键盘和鼠标操作的时间的类
    使用消息来处理多线程程序中的一些问题
    多线程程序写日志时遇到加锁的问题
    android之横向滚动图
    android listview的一些设置
    android之异步任务
    android之隐式intent调用
    android之广播
  • 原文地址:https://www.cnblogs.com/jijm123/p/9201934.html
Copyright © 2020-2023  润新知