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

DBGrid 如何只用按鍵作非連續多筆選擇

缺席
whyzn
中階會員


發表:46
回覆:149
積分:54
註冊:2002-06-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-10 01:28:52 IP:218.162.xxx.xxx 未訂閱
請教先進 DBGrid 內定在作非連續性多筆選擇時適用 Ctrl Left Click 如果不用滑鼠我發覺只要指標一移動原來選的就被清掉了 有方法解決嗎 ? ●○○○○○●○○○○○● 竹密不妨水過,山高無礙雲飛
------
●○○○○○●○○○○○●
竹密不妨水過,山高無礙雲飛
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-10 11:29:34 IP:219.86.xxx.xxx 未訂閱
有參考過之前的文章嗎! 例如: http://delphi.ktop.com.tw/topic.php?topic_id=71765 http://delphi.ktop.com.tw/topic.php?topic_id=72707 應該會給你一些啟發。 有時候參考Delphi Source Code 。應會瞭解它的原理! 參考。 ~~~~~~~~~~~ 難得聰明,常常糊塗。 ~~~~~~~~~~~
whyzn
中階會員


發表:46
回覆:149
積分:54
註冊:2002-06-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-10 20:38:35 IP:61.225.xxx.xxx 未訂閱
感謝 wameng 兄 我有查過 DBGrid 和 MultiSelect 相關文章,不過沒有可以套用之處 查看 DBGrid 的 Source Code 中有一段 procedure TCustomDBGrid.KeyDown(var Key: Word; Shift: TShiftState); 我試想可不可以改寫這一段 若 ssCtrl in Shift 就不作 ClearSelection 如此可行否 ●○○○○○●○○○○○● 竹密不妨水過,山高無礙雲飛
------
●○○○○○●○○○○○●
竹密不妨水過,山高無礙雲飛
whyzn
中階會員


發表:46
回覆:149
積分:54
註冊:2002-06-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-10 20:57:52 IP:61.225.xxx.xxx 未訂閱
感恩,解決了 不過這可能只符合我用就是了  
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if ssCtrl in Shift then
    begin
      case Key of
        vk_return:
          dbgrid1.SelectedRows.CurrentRowSelected := not dbgrid1.SelectedRows.CurrentRowSelected;
        vk_up:
          DBGrid1.DataSource.DataSet.Prior;
        vk_down:  
          DBGrid1.DataSource.DataSet.Next;
      end;
      if Key in [vk_return, vk_up, vk_down] then Key := 0;
    end;
end;
 
●○○○○○●○○○○○● 竹密不妨水過,山高無礙雲飛
------
●○○○○○●○○○○○●
竹密不妨水過,山高無礙雲飛
系統時間:2024-07-02 1:48:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!