?? tdbgrid 控 件 中 對 多 個 記 錄 .htm
字號:
<html>
<head>
<link REL="stylesheet" HREF="/style.css" TYPE="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>計算機(jī)世界日報:
TDBGrid控件中對多個記錄的處理
</title>
<!--***********-->
</head>
<body bgcolor="#FFFFFF" >
<p><br>
<font color="#b904e8"><b><em><a href="class.htm">返回</a></em></b></font>
<center>
<font color="#0000c0"><h2>
TDBGrid 控 件 中 對 多 個 記 錄 的 處 理
</h2></font>
<h3>
山 東 濟(jì) 寧 市 建 設(shè) 南 路76 號
<br>
唐 成 斌
</h3>
</center>
<p><font color="#ffffff">----</font>
DELPHI 的TDBGrid 控 件 主 要 用 來 處 理 數(shù) 據(jù) 表, 它 的 屬 性 中 有 一 個dgMultiSelect, 若 此 屬 性 設(shè) 定 為TRUE, 則 可 以 選 中 多 個 記 錄( 可 用CTRL + 鼠 標(biāo) 左 鍵 選 擇 多 個 記 錄)。 對 選 中 的 多 個 記 錄 可 以 有 以 下 幾 種 處 理 方 式, 比 較 簡 單 的 兩 種 是: 清 除 所 有 的 選 擇 記 錄 可 用DBGrid1.SelectedRows.Clear 語 句; 刪 除 所 有 的 選 擇 記 錄 可 用DBGrid1.SelectedRows.Delete 語 句。 但 如 果 想 獲 得 選 中 的 所 有 記 錄 的 其 他 信 息, 比 如, 在 單 獨 的 一 個 窗 體 中 顯 示 用 戶 選 擇 的 記 錄 的 第 一 個 字 段 的 內(nèi) 容( 如 所 有 選 擇 的 姓 名) 如 何 處 理 呢 ? 這 就 要 使 用 書 簽 功 能 了, 下 面 是 筆 者 編 寫 的 一 個 程 序 中 的 過 程, 用 來 將 用 戶 選 擇 的 多 個 記 錄 集 中 顯 示 在 另 外 一 個 窗 體 中( 筆 者 使 用 的 是DELPHI4), 供 參 考 使 用。
<pre>
procedure GetSelectedRecord
(DataSet : TDataSet; FieldName : String;
BookmarkList : TBookmarkList; Strings : TStrings);
//這個過程中的參數(shù)分別為:數(shù)據(jù)表、字段名稱、
書簽、用來保存所選字段內(nèi)容的
//字符串(用于將內(nèi)容傳遞到另
一個單獨窗體中的TLIST控件中)
var
I: Integer;
bm : TBookMark;
begin
Strings.Clear;
with Dataset do begin
DisableControls;
bm := GetBookMark;
try
//每個選擇的記錄都有一個書簽標(biāo)志,
這就為處理它們提供了條件
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;
調(diào)用舉例:
GetSelectedRecord(Table1, 'NAME', DBGrid1.SelectedRows,
Form2.ListBox1.Items);
</pre>
<p align="right"><small><em>中國計算機(jī)世界出版服務(wù)公司版權(quán)所有</em></small>
<br>
</p>
</body>
</html>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -