全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1237
推到 Plurk!
推到 Facebook!

DBGrid的一個問題!

答題得分者是:Rain
ccsam
一般會員


發表:6
回覆:8
積分:7
註冊:2003-07-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-04 17:00:56 IP:211.21.xxx.xxx 未訂閱
請教各位大大 今天被同事問到說我某支程式裡DBGrid 能不能使用Shift Mouse-click選取一個區段的Record 我回來找了半天,沒發現DBGrid有這樣的選項 只有Multiselect的選項,但是只支援Ctrl Mouse-click 一個個的選取 不知道有那位先進知道該怎麼作嗎?? 謝謝
Rain
資深會員


發表:31
回覆:236
積分:268
註冊:2003-02-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-04 18:03:20 IP:220.160.xxx.xxx 未訂閱
DBGrid支援鍵盤的按Shift多選(Shift+向上向下鍵),但不支援滑鼠,可重載DBGrid的MouseDown過程加上這項功能,參照它原來的KeyDown過程,大致實現(MultiSelect項還是要設的):
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;    var
  iRow: Integer;    if (ssShift in Shift) and (dgMultiSelect in Options) then 
begin
  iRow := MouseCoord(X,Y).Y;//根據滑鼠位置取得點擊行
  if iRow > Row then 
  begin
    //這邊加一個迴圈,從Row到iRow
    DataSet.MoveBy(1);//移到下一條記錄
    SelectedRows.CurrentRowSelected := True;//選擇當前記錄
  end
  else
  begin
    DataSet.MoveBy(-1);//移到上一條記錄
    SelectedRows.CurrentRowSelected := True;
  end;
end;
還是有點麻煩吧,所以我自己比較傾向將就著用鍵盤了 發表人 - Rain 於 2003/08/04 18:06:59
系統時間:2024-05-15 13:04:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!