Delphi程序設計中的鼠標控制_第1頁
Delphi程序設計中的鼠標控制_第2頁
Delphi程序設計中的鼠標控制_第3頁
Delphi程序設計中的鼠標控制_第4頁
Delphi程序設計中的鼠標控制_第5頁
已閱讀5頁,還剩19頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Delphi 程序設計中的鼠標控制這些事件的主要功能包括改變鼠標指針的形狀,移動、觸發、拖動鼠標等。一、改變鼠標指針的形狀當應用程序在執行一個較長時間的指令或動作時,我們可以改變鼠標指針的形狀來通知用戶程序執行的狀態,等到執行的動作完成之后,再把鼠標指針的形狀變回來。此外,在拖動的過程中我們也可以改變鼠標指針的形狀,使拖動的過程更加清楚。前者是記錄鼠標指針在對象上出現的情況;后者是設定對象被拖動時鼠標指針的形狀。 二、鼠標的移動t 事件時,最重要的就是這兩個參數。三、鼠標按鍵鼠標按鍵在窗口環境中也是最重要的輸入方法之一,配合 Shift,Alt,Ctrl 三個鍵而發揮不同的作用。ddle 這些

2、參數值分別代表 Shift,Alt,Ctrl 鍵、鼠標的左、中、右鍵,及同時按下左右鍵。 例如,同時按下鼠標的右鍵和Alt 鍵,參數 Shift 的值就是ssAlt,ssRight。四、鼠標的拖動(細節)(一)啟動拖動狀態拖動狀態的方式及啟動是根據屬性DragMode 值的設定而決定的,可以分成兩類情況: 。 TRUE,代表已進入拖動狀態,否則就是沒有。要使對象進入拖動狀態,可以調用對象方法BeginDrag。 (二)拖動中的事件 參數 X ,Y 代表拖動結束時的位置坐標,此坐標是以目標對象的坐標為參考的,而實際上拖動中的對象并不是真的移動,所以以X,Y 的值將對象移到新的位置。(三)停止拖動

3、如果要停止拖動,可以使用對象方法EndDrag 來完成;其語法如下: DropTure將被放置于與目前所在的位置;否則,對象的拖動就被放棄,而回到原來的位置。例如下面的程序段就代表對象 Lable1放棄拖動,并恢復原狀:不管是放棄拖動或是對象已經拖動到目標對象,均會觸發這個事件。 DELPHI 中拖放的操作 具, Delphi 同樣支持拖放操作,而且開發應用系統的拖放功能十分方便,真正體現了 Delphi 提供的所有控件(Control,即能獲得輸入焦點的部件)都支持拖放操作,并有相應的拖放屬性、拖放事件和拖放方法。下面我們先介紹控件的拖放支持,而后再給出開 發拖放操作的一般步驟和應用實例。9

4、.1 控件的拖放支持拖放操作中控件可以分為源控件和目標控件兩類。絕大部分控件既可以作為源控件 也可以作為目標控件。但也有一部分控件只能支持其中的一種。 下鼠標時控件如何反應。 來判斷一個拖動是否可以開始。用于選擇拖動時顯示的光標,缺省值是CrDrag,一般不要去修改它。在程序設計過程中通用的界面規范應該得到開發者的尊重。但有時候為了特定的目的,開發者也可以把自己設計的光標賦給DragCursor。拖放事件主要有三個(?):前兩個事件由目標控件響應,后一個事件由源控件響應。OnDragOver 事件最主要的功能是確定當用戶就地放下拖動時控件是否可以接受。 X ,Y:Integer; 光標位置取值

5、意義 dsDragEnter Move用戶可以利用提供的參數來確定放下的拖動是否可被接受,如:p OnDragDrop 事件處理過程的參數包括源控件和光標位置。這些信息可用于處理方式的確 OnEndDrag 事件是在拖動操作結束后由源控件來進行響應的,用于源控件進行相應的 處理。拖動操作結束既包括拖動放下被接受,也包括用戶在一個不能接受放下的控件上釋 放了鼠標。該事件處理過程的參數包括目標控件(Target)和放下位置的坐標。如果 Target=nil, 表示拖動項目沒有被任何控件接受。在第 3 節將介紹的文件拖放移動、拖放拷貝操作中,如果操作成功,則文件列表框應更新顯示內容。下面這段程序用于

6、實現這一功能。 除以上介紹的三個事件外,還有一個事件OnMouseDown 也常用于拖放操作的響應。OnMouseDown 雖然不是一個專門的拖放事件,但在人工模式下拖動的開始是在這一事件的處理過程中實現的。式這三個方法都被源控件使用。 (5 個象素點)后才改變光標,開始拖動。這就允許控件接受一個OnClick 事件而并不開始DragDropDrop 下面一段程序表明當拖動進入一控制面板時拖動被取消。rDraging 方法判斷一個控件是否正被拖動。在下面的例子中當用戶拖動不同的檢查框 時窗口改變為不同的顏色。w例子:對于上述的鼠標操作,我舉一個例子。就不再留下痕跡)。 R .DFM兩種方式實現拖曳:用七個事件分裂成兩種方法(七武器)delphi 下如何實現動態對象的拖拽昨天上午寫了一個小程序,模仿 delphi 設計階段組件的拖拽,實現了動態創建對象的拖拽。 首先動態創建三個 TLabel 對象,并且保存到 TList 中,分別設置他們的 onmousedown, lstMyRect : TList; /類似于控件數組NowRectTRect /組件對象的邊框當鼠標按下時,記錄下開始點,并得到組件對象的邊框,在移動的時候給用戶以參照,并 且把該邊框畫出當鼠標移動的時候,計算出移動的距離,消隱上一個位置的邊框,計算新位置的邊框并畫 出 Y框的位置當鼠標放開時,不用再畫邊框,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論