如何清除 keyboard buffer ? |
答題得分者是:m8815010
|
xfile
初階會員 發表:21 回覆:80 積分:25 註冊:2004-10-02 發送簡訊給我 |
新手發問 :p 小弟寫了個程式,用 memo 輸入文字,如果輸入的內容是空的(直接按 Enter)
則清除 memo 內容,若 memo 有內容,則把 memo 的內容傳到另外的元件中,
並把 memo 清空。以下是問題所在 : void __fastcall TForm1::Memo2KeyPress(TObject *Sender, char &Key)
{
if(Key == VK_RETURN)
{
if (Memo2->Text != "")
Message_Print(Memo2->Text); // 自訂函數,送出 memo 內容
}
} 在 OnKeyPress 中按了什麼鍵都會先判斷,判斷完,也就是 OnKeyPress 事件
處理完以後以後再存入 memo 中,所以下一次 memo 一定不是空的,裡面
最少有 "\r\n" 這種東西。 若在 OnKeyDown 事件中判斷的話,memo 會多出 "\r\n",判斷的難度
就會增加,可以的話有沒有辦法在 OnKeyPress 就清空 keyboard buffer 呢 ?
這樣的話比較簡單明快。
|
m8815010
版主 發表:99 回覆:372 積分:289 註冊:2003-11-13 發送簡訊給我 |
引言: 新手發問 :p 小弟寫了個程式,用 memo 輸入文字,如果輸入的內容是空的(直接按 Enter) 則清除 memo 內容,若 memo 有內容,則把 memo 的內容傳到另外的元件中, 並把 memo 清空。以下是問題所在 : void __fastcall TForm1::Memo2KeyPress(TObject *Sender, char &Key) { if(Key == VK_RETURN) { if (Memo2->Text != "") Message_Print(Memo2->Text); // 自訂函數,送出 memo 內容 } } 在 OnKeyPress 中按了什麼鍵都會先判斷,判斷完,也就是 OnKeyPress 事件 處理完以後以後再存入 memo 中,所以下一次 memo 一定不是空的,裡面 最少有 "\r\n" 這種東西。 若在 OnKeyDown 事件中判斷的話,memo 會多出 "\r\n",判斷的難度 就會增加,可以的話有沒有辦法在 OnKeyPress 就清空 keyboard buffer 呢 ? 這樣的話比較簡單明快。xfile你好< >: 不是很明白你的意思< >,不曉得是不是這樣: void __fastcall TForm1::Memo1KeyPress(TObject *Sender, char &Key) { if (Key==VK_RETURN) { Key=0; <--多加這一行 if (Memo1->Text!="") Memo2->Text=Memo2->Text Memo1->Text; } }這樣enter鍵(換行)就不會進到你的Memo1中了! All! 發表人 - |
xfile
初階會員 發表:21 回覆:80 積分:25 註冊:2004-10-02 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |