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

如何好好控制TAB鍵....

尚未結案
sprewell
一般會員


發表:13
回覆:21
積分:6
註冊:2003-11-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-14 16:09:15 IP:61.222.xxx.xxx 未訂閱
各位大大: Keyreview屬性攔截不到子元件的TAB鍵, 若我想控制整個FORM的TAB事件,讓他依照我的判斷來決定ACTIVECONTROL為何, 該如何處理? 而且我發現TDBGRID在KEYDOWN事件又好像可以攔到TAB鍵, 其他元件如TEDIT等卻不行?? 另外好像只要設定了tabstop = true後, 不管我在KEYDOWN事件把ACTIVECONTROL給誰...還是會被tab order搶走...跳到下一個tab order的元件..>< 之前有大大提到可以利用TAPPLICATIONEVENTS處理,可以在說明一下嘛?? procedure TCounterFrm.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (key = VK_TAB) then begin key := 0; ControlTab; end; end; procedure TCounterFrm.ControlTab; begin if (CounterDM.OrderDetailTable.IsEmpty) then begin if (ActiveControl = CustTel) then begin OrderDetailDBGrid.SelectedIndex := 0; end else begin ActiveControl := CustTel; end; end else begin if (ActiveControl = DBGetDate) then begin ActiveControl := OrderDeposit; end else if (ActiveControl = OrderDeposit) then begin OrderDetailDBGrid.SelectedIndex := 0; ActiveControl := OrderDetailDBGrid; end else begin ActiveControl := DBGetDate; end; end; end; 感謝...!! Delphi....我真的是摸不透你阿!!
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-15 09:41:47 IP:210.61.xxx.xxx 未訂閱
sprewell您好 直接處理ApplicationEvents.OnMessages 參考看看
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
  case Msg.message of
    wm_keydown:
    begin
      Memo1.Lines.Add(IntToStr(msg.wParam));
      if msg.wParam=vk_tab then
        showMessage('tab key press');
    end;
  end;
end;
系統時間:2024-07-05 2:24:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!