• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

DelphiDbgridEh实现鼠标拖动选中列,并使复选框选中

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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;


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
MATLAB产生离散信号发布时间:2022-07-18
下一篇:
Matlab 基础入门发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap