線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1864
推到 Plurk!
推到 Facebook!

DBGrid的MultiSelect問題

尚未結案
a6475
高階會員


發表:67
回覆:230
積分:154
註冊:2002-09-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-02-20 15:24:35 IP:61.229.xxx.xxx 未訂閱
請問在DBGrid上,怎麼按[空白鍵]即選取該筆資料, 而且可以選取多筆。 像分別在第一筆和第三筆資料上按[空白鍵],即選取 這兩筆。 然後怎麼知道選取的是這兩筆? 有什麼屬性可以用^_^ 謝謝嘍.. 月夜 光明 藍更愁
------
月夜 光明 藍更愁
l630521
資深會員


發表:15
回覆:349
積分:372
註冊:2003-02-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-02-20 15:48:07 IP:61.222.xxx.xxx 未訂閱
1.將DBGrid.Options 加入[dgMultiSelect] DBGrid1.Options := DBGrid1.Options [dgMultiSelect]; 至於按[空白鍵]我就不知道了! 2.用DBGrid1.SelectedRows.CurrentRowSelected來判斷是否被選取
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-02-20 15:51:39 IP:61.219.xxx.xxx 未訂閱
將DBGrid的options中dgMultiselect,dgRowSelect設為True 就可以多選, 可按ctrl鍵,用mouse click或上,下鍵來選 若要用space bar選須另寫keydown event,保持window習性不是很好    要取出被選取項目, 以下是help中的sample
  if DBGrid1.SelectedRows.Count>0 then
    with DBGrid1.DataSource.DataSet do
      for i:=0 to DBGrid1.SelectedRows.Count-1 do
      begin
        GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
        for j := 0 to FieldCount-1 do
        begin              if (j>0) then s:=s ', ';
          s:=s Fields[j].AsString;
        end;
        Listbox1.Items.Add(s);
        s:= '';
      end;
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-02-20 15:54:27 IP:61.221.xxx.xxx 未訂閱
DBGrid有一個Options的屬性 裡面有dgMultiSelect的選項 預設值為false 改為true 即可選取多行 但是我沒有試過用空白鍵選取 不知道可不可行 請您自己測試一下囉
a6475
高階會員


發表:67
回覆:230
積分:154
註冊:2002-09-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-02-20 16:01:28 IP:61.229.xxx.xxx 未訂閱
謝謝大家的回應... 我知道dgMultiSelect要設true 但是都卡在按空白鍵的問題^^ 月夜 光明 藍更愁
------
月夜 光明 藍更愁
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-02-20 16:37:12 IP:61.219.xxx.xxx 未訂閱
[空白鍵]即選取該筆資料本身是很容易的, 只要在 DBGrid之onKeyPress if key=#32 then DBGrid1.SelectedRows.CurrentRowSelected := not BGrid1.SelectedRows.CurrentRowSelected; 實際上要implement到有效卻很麻煩. 當你按了space選取後, 再按向下(或向上鍵)所有選取就取消了. 如果要讓向下(或向上鍵)不改變選取之data, 你就必須另找一key來取消選取. 同時要配合mouse動作 結果是你要先想清楚, 規劃好每一key及mouse動作你想要的反應, 然後改寫mouse, keyboard Event的動作,來完成一個和一般window程式不一致的東西
系統時間:2024-03-29 23:11:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!