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;

  • 相关阅读:
    Asp.net mvc 2 in action 笔记1 概述、Model
    持续集成(CI) 基础
    WCF Service的一些参考资源
    Flash Builder4.5 + BladeDS + Java 集成实例
    .net GC知识点滴
    Silverlight的工具推荐
    php异常处理技术,顶级异常处理器
    【转】理解MySQL——索引与优化
    Zend_Controller的工作流程
    PHP set_error_handler() 函数
  • 原文地址:https://www.cnblogs.com/zhangzhifeng/p/2182224.html
Copyright © 2011-2022 走看看