zoukankan      html  css  js  c++  java
  • 如何在DBGrid里实现Shift+“选择行”区间多选的功能!

    DELPHI 的TDBGrid 控 件 主 要 用 来 处 理 数 据 表, 它 的 属 性 中 有 
    一 个dgMultiSelect, 若 此 属 性 设 定 为TRUE, 则 可 以 选 中 多 个 记 录
    ( 可 用CTRL + 鼠 标 左 键 选 择 多 个 记 录)。 对 选 中 的 多 个 记 录
    可 以 有 以 下 几 种 处 理 方 式, 比 较 简 单 的 两 种 是: 清 除 所 有
    的 选 择 记 录 可 用DBGrid1.SelectedRows.Clear 语 句; 删 除 所 有 的 选 
    择 记 录 可 用DBGrid1.SelectedRows.Delete 语 句。 但 如 果 想 获 得 选 中 
    的 所 有 记 录 的 其 他 信 息, 比 如, 在 单 独 的 一 个 窗 体 中 显 示
    用 户 选 择 的 记 录 的 第 一 个 字 段 的 内 容( 如 所 有 选 择 的 姓 名)
    如 何 处 理 呢 ? 这 就 要 使 用 书 签 功 能 了, 下 面 是 笔 者 编 写 的
    一 个 程 序 中 的 过 程, 用 来 将 用 户 选 择 的 多 个 记 录 集 中 显 示 
    在 另 外 一 个 窗 体 中( 笔 者 使 用 的 是DELPHI4), 供 参 考 使 用。


    procedure GetSelectedRecord
    (DataSet : TDataSet; FieldName : String;
    BookmarkList : TBookmarkList; Strings : TStrings);
    file://这个过程中的参数分别为:数据表、字段名称、
    书签、用来保存所选字段内容的
    file://字符串(用于将内容传递到另
    一个单独窗体中的TLIST控件中)
    var
    I: Integer;
    bm : TBookMark;
    begin
    Strings.Clear;
    with Dataset do begin
    DisableControls;
    bm := GetBookMark;
    try
    file://每个选择的记录都有一个书签标志,
    这就为处理它们提供了条件
    for I := 0 to BookmarkList.Count - 1 do begin
    Bookmark := BookmarkList[I];
    Strings.Add(DataSet.FindField(fieldname).AsString);
    end;
    finally
    GotoBookMark(bm);
    FreeBookMark(bm);
    EnableControls;
    end;
    end;
    end;

    调用举例:
    GetSelectedRecord(Table1, 'NAME', DBGrid1.SelectedRows, 
    Form2.ListBox1.Items


  • 相关阅读:
    二叉树 排序二叉树-可以通过中序遍历得到排序的数据 二叉排序树时间复杂度O(logn),
    双链表排序
    Linux C 单链表 读取文件 并排序 实例并解释
    Linux 中文乱码问题
    双向链表排序
    玩转iOS开发
    Firefox OS简单介绍
    深入理解Dalvik虚拟机- 解释器的执行机制
    菜鸟学Struts——I18N对国际化的支持
    【leetcode】Flatten Binary Tree to Linked List
  • 原文地址:https://www.cnblogs.com/jijm123/p/10247721.html
Copyright © 2011-2022 走看看