利用书签功能对TDBGrid控件中多个记录的处理

王朝delphi·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航