題目的要求:


1.以電腦鍵盤控制圖片移動


2.顯示目前圖片位置座標


3.可設定每次移動距離


4.可設定移動範圍

 


要達到用電腦鍵盤來控制LabVIEW物件只能用鍵盤事件來做,最好手上有電腦鍵盤的按鍵代碼對照表,不過這個對照表很難找到,因此要先做個程式去找出每個按鍵的代碼

 


按鍵的代碼還是只能靠鍵盤事件去找:


首先程式區先放上事件(Event Structure)元件,在事件元件的框上按滑鼠右鍵,從跳出的選項中選擇Edit Events Handled by This Case...這一項,會跳出事件屬性的對話視窗。更改成為Key Down?事件,按OK完成變更

20080909-06  

 

 

變更後的事件元件框內會出現可供輸出入的項目,這裡只用到左邊輸入的項目

20080909-07  

 

這些輸入項在鍵盤控制時不會全部用到,現在只針對可能用到的部份說明:


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這兩項

20080909-08  

 

這次按鍵控制只用到上下左右的方向鍵,用以上程式找出的代碼如下:


向上鍵72


向下鍵80


向左鍵75


向右鍵77

 

 

程式面板配置如下:這裡圖片物件用Pict Ring元件

20080909-01  

 

 

程式當然是用Key Down?事件來寫,這裡只用到ScanCode這一項。從ScanCode得到的數值和找到的代碼比對來確定哪個按鍵動作,然後用Case Structure元件來寫圖片移動的程式


圖片位置的現在值用Pict Ring元件的Property Node選項產生輸出元件,設定為Position,連接到現在位置的顯示元件上


LabVIEW的面板是以左上角為原點,向上和向左移動時要把現在值減去移動量,向下和向右移動要把現在值加上移動量。左上角的原點是0,所以控制面板只輸入右限和下限

20080909-02  

 

20080909-03  

 

20080909-04  

 

20080909-05  

arrow
arrow
    文章標籤
    作業習題 圖片移動
    全站熱搜

    未出師的小工程師 發表在 痞客邦 留言(0) 人氣()