題目的要求:
1.以電腦鍵盤控制圖片移動
2.顯示目前圖片位置座標
3.可設定每次移動距離
4.可設定移動範圍
要達到用電腦鍵盤來控制LabVIEW物件只能用鍵盤事件來做,最好手上有電腦鍵盤的按鍵代碼對照表,不過這個對照表很難找到,因此要先做個程式去找出每個按鍵的代碼
按鍵的代碼還是只能靠鍵盤事件去找:
首先程式區先放上事件(Event Structure)元件,在事件元件的框上按滑鼠右鍵,從跳出的選項中選擇Edit Events Handled by This Case...這一項,會跳出事件屬性的對話視窗。更改成為Key Down?事件,按OK完成變更
變更後的事件元件框內會出現可供輸出入的項目,這裡只用到左邊輸入的項目
這些輸入項在鍵盤控制時不會全部用到,現在只針對可能用到的部份說明:
1.Char→偵測每個輸入字元按鍵(A~Z,0~9,和部份符號)代碼,注意大小寫英文偵測到的代碼不同,另外右邊數字鍵盤在Num Lock按鍵有按下的情況才能用這一項來偵測
2.VKey→偵測按鍵類型,是字元輸入按鍵會顯示ASCII,是功能鍵會顯示功能鍵名稱
3.ScanCode→偵測每個功能鍵(F1~F12,Ctrl...等)代碼,右邊數字鍵盤在Num Lock按鍵沒有按下的情況才能用這一項來偵測
4.Mods是偵測動作的是Num Lock按鍵或功能鍵
5.PlatMods是專門偵測常用功能鍵(Ctrl,Shift,Alt)的動作狀態
※注意程式未編譯成執行檔時,Alt這個按鍵的代碼和動作無法被偵測,但和其他功能鍵組合使用時動作可以被偵測
這程式只要偵測按鍵代碼,所以只用到Char和ScanCode這兩項
這次按鍵控制只用到上下左右的方向鍵,用以上程式找出的代碼如下:
向上鍵72
向下鍵80
向左鍵75
向右鍵77
程式面板配置如下:這裡圖片物件用Pict Ring元件
程式當然是用Key Down?事件來寫,這裡只用到ScanCode這一項。從ScanCode得到的數值和找到的代碼比對來確定哪個按鍵動作,然後用Case Structure元件來寫圖片移動的程式
圖片位置的現在值用Pict Ring元件的Property Node選項產生輸出元件,設定為Position,連接到現在位置的顯示元件上
LabVIEW的面板是以左上角為原點,向上和向左移動時要把現在值減去移動量,向下和向右移動要把現在值加上移動量。左上角的原點是0,所以控制面板只輸入右限和下限
留言列表