zoukankan      html  css  js  c++  java
  • Delphi DbgridEh实现鼠标拖动选中列,并使复选框选中

    1.先设置表格列的属性

    procedure TForm_TaskToDW.InitGrid;
    var
      MyCol: TColumnEh;
    begin
      with DBGridEh_Task do
      begin
        Columns.Clear;
        MyCol := Columns.Add;
        MyCol.FieldName := 'Select';
        MyCol.Title.Caption := '选择';
        MyCol.Alignment := taCenter;
        MyCol.Width := 50;
        MyCol.ReadOnly := false;

        MyCol := Columns.Add;
        MyCol.FieldName := 'TASK_NAME';
        MyCol.Title.Caption := '任务名称';
        MyCol.Width := 300;
        //MyCol.Alignment := taCenter;
        MyCol.ReadOnly := True;
      end;
    end;

    2.创建CDS

    procedure TForm_TaskToDW.CreateCDSFlds;
    begin
      with CDS_Task do
      begin
        FieldDefs.Clear;
        FieldDefs.Add('Select', ftBoolean);
        FieldDefs.Add('TASK_ID', ftString, 36);
        FieldDefs.Add('TASK_NAME', ftString, 120);
        FieldDefs.Add('IS_GEN', ftString, 1);
        CreateDataSet;
      end;
    end;

    3.通过下面这个方法实现拖动选中复选框

    procedure TForm_TaskToDW.SetSelRowState(State: Boolean = True);
    var
      I: Integer;
      BookMark: TBookmarkListEh;
    begin
      //BookMark := DBGridEh_Task.SelectedRows;  //TBookmarkListEh

      for I := 0 to DBGridEh_Task.SelectedRows.Count -1 do
      begin
        //if DBGridEh_Task.SelectedRows.CurrentRowSelected then //行被选中
        CDS_Task.GotoBookmark(Pointer(DBGridEh_Task.SelectedRows.Items[i]));
        begin
          CDS_Task.Edit;
          CDS_Task.FieldByName('Select').AsBoolean := State;
          CDS_Task.Post;
        end;
      end;
    end;

  • 相关阅读:
    缓存
    java垃圾回收机制GC(Garbage Collection)
    设计模式之适配器模式
    数据的水平分片意义
    屏幕坏点简单检查方法(网页纯色检查)
    Mac OS X上如何实现到Linux主机的ssh免登陆[forward]
    25个必须记住的SSH命令[forward]
    资料链接整理
    JAVA学习网站收集
    详细介绍ORACLE sqlplus命令(转)
  • 原文地址:https://www.cnblogs.com/zhangzhifeng/p/2182224.html
Copyright © 2011-2022 走看看