DBGrid 之 SelectedRows.Count |
答題得分者是:huangeider
|
yandav
一般會員 發表:16 回覆:20 積分:7 註冊:2002-10-05 發送簡訊給我 |
DBGrid 之 MultiSelect 可用 Ctrl鍵加滑鼠來點選
或 Shift鍵按住不放, 再按上下鍵來選擇
我將 SelectedRows.Count 寫在 DBGrid之DataSource
的 OnDataChange 事件中,如下 procedure TOneForm.DataSource1DataChange(Sender: TObject; Field: TField);
begin
Label1.Caption:='共選擇: ' IntToStr(DBGrid1.SelectedRows.Count) ' 筆';
end; 以 Ctrl鍵加滑鼠點選的選擇筆數沒問題, 但以 Shift鍵加上下鍵來選擇時,
第一次的筆數會少一筆, 然後連續之Shift鍵加上下鍵, 筆數都差一筆,
除非再以 Ctrl鍵加滑鼠, 筆數才正常,不知原因何在 ?
|
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
試試加上
procedure TOneForm.DataSource1DataChange(Sender: TObject; Field: TField);
begin
Label1.Caption:='共選擇: ' IntToStr(DBGrid1.SelectedRows.Count) ' 筆';
end;
procedure TForm1.DBGrid1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
dbgrid1.DataSource.DataSet.Refresh;
end;
這是因為用shift和crtl在未移到下一筆前dataset不會自動更新 「堅持」從洗馬桶做起
Aric 發表人 - huangeider 於 2003/11/20 14:26:47
|
yandav
一般會員 發表:16 回覆:20 積分:7 註冊:2002-10-05 發送簡訊給我 |
|
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
因為是keyup就refresh一次
除非給使用者一個按鍵
在按鍵中寫上refresh的程式碼不然程式是死的
目前小弟沒有任何方法去調整速度 「堅持」從洗馬桶做起
Aric
當SHIFT up時啟動refresh
procedure TForm1.DBGrid1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_shift then dbgrid1.DataSource.DataSet.Refresh;
end; 發表人 - huangeider 於 2003/11/20 14:57:46
|
yandav
一般會員 發表:16 回覆:20 積分:7 註冊:2002-10-05 發送簡訊給我 |
當SHIFT up時啟動refresh
procedure TForm1.DBGrid1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_shift then dbgrid1.DataSource.DataSet.Refresh;
end;
=========================================================
感謝 huangeider 兄,
就先這麼處理了.
謝謝!!
|
ckc8088
一般會員 發表:3 回覆:7 積分:2 註冊:2002-07-11 發送簡訊給我 |
|
yandav
一般會員 發表:16 回覆:20 積分:7 註冊:2002-10-05 發送簡訊給我 |
將 Event 寫在 DBGrid1DrawDataCell procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
begin
Caption:=Inttostr(DBGrid1.SelectedRows.Count);
end;
======================================================= 感謝 ckc8088 兄不吝指導,
但若照這麼做, 按 Shift 上下鍵 時, 則無任何反應
應該是此 OnDrawDataCell 事件並未被觸發
謝謝!!
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |