在代碼中,我在幾年前開發的,我一直用這個有很多收在任何時刻按下Esc鍵的當前形式:如何在TEdit集中時避免按下Escape時的叮聲?
procedure TSomeForm.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = #27 then close;
end;
此行爲是TForm的定義。表單的KeyPreview
屬性設置爲True
,以使表單在任何其他組件之前對按鍵進行響應。對於程序的最佳部分,它都可以很好地工作,但是,如果在TEdit組件聚焦時按下Escape鍵,則發出聲音(Windows使用聲音表示無效操作)。它仍然正常工作,但我從來沒有完全擺脫聲音。
這是什麼問題?
步驟重新創建:
- 新的VCL Forms應用程序,設置窗體的的KeyPreview真
事件選項卡上雙擊onkeypress事件事件並輸入虛擬代碼:
if key =#27 then;
添加的TListBox,TCheckBox,TEDIT的形式和運行應用程序的應用
- 試着同時按下Esc鍵沒有反應,由僞代碼
- 重點TEDIT和按Esc鍵指定。沒有任何反應,但播放的聲音。
這讓我無語了...我已經破解了更堅韌的堅果,但是這... aaaahhhh。感謝您的建議。多謝。 – 2009-04-20 21:54:39
它發生在我們所有人身上。任何時候,我都會在一段時間內與一個bug進行鬥爭,但我知道它會變得非常簡單。這只是它的工作方式。 – 2009-04-20 22:38:35