Borland C++Builder (BCB) 是個非常適合用來編輯Window
程式的工具可是有時候明明很小很細節的功能,他就是不支援。

 

比方說筆者最近廣泛使用BCB裡面的Memo元件,使用此元件可
以快速讓你完成任何需要文字編輯的工作。據說使用該元件,可
以在不到一天內寫出個自己喜歡的記事本程式。

 

可是他卻有許多記事本沒有的功能,其中天使覺得最不方便的就
是,沒有支援快速鍵ctrl+A的全選功能,這導致當你必須覆蓋整
篇文件時候,你還得用滑鼠拉整份文件才能全選。當文件很大一
份時候可有得你受!

 

簡單功能卻沒有支援,只好自己寫了-不過網路上有關於如何設
計這個小功能的文章實在不多-也許是太簡單了,不過,天使的
確因為不知道如何設計快速鍵事件的擷取而卡了一下,知道如何
結取快速鍵之後,設計這個功能就太容易啦!

原始程式碼:
void __fastcall TForm1::Memo1KeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)//偵測按鍵事件
{
        if ( Shift.Contains(ssCtrl)) //最重要的部份!偵測是否有按下CTRL!
        {
                if(Key==65)//A
                        Memo1->SelectAll();//當ctrl+A發生時候,使用全選
        }
}

這個程式最容易卡的部分應該就在偵測組合鍵的部份,實際上它
可用一個簡單的函式判斷

按下之組合鍵

Shift

語法

1.Shift

ssShift

if ( Shift.Contains(ssShift))

2. Ctrl

ssCtrl

if ( Shift.Contains(ssCtrl))

3. Alt

ssAlt

if ( Shift.Contains(ssAlt))

這部分寫好後,設計起來就太簡單了!

創作者介紹
創作者 天使 的頭像
天使

天使的咖啡屋

天使 發表在 痞客邦 留言(0) 人氣()