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


  • 相关阅读:
    Intent
    What should we do next in general after collecting relevant data
    NOTE FOR Secure Friend Discovery in Mobile Social Networks
    missing pcap.h
    after building Android Source code
    plot point(one column)
    When talking to someone else, don't infer that is has been talked with others at first. It may bring repulsion to the person who is talking with you.
    进程基本知识
    Python input和raw_input的区别
    强制 code review:reviewboard+svn 的方案
  • 原文地址:https://www.cnblogs.com/jijm123/p/10247721.html
Copyright © 2011-2022 走看看