




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第18講拖放技術結束放映第一頁上一頁下一頁最后一頁拖放是一種用來完成對象上操作的方法,它通過單擊對象并在移動鼠標時按住鼠標按鈕來實現,這個過程叫做拖動(Dragging)。然后把對象移動到指定的對象并釋放鼠標,這個過程叫做釋放(Dropping)。因此,拖放是一種通過鼠標直接操縱對象及其數據的方法。
目的要求:1.理解拖放定義2.了解拖放規則3.掌握拖放技術18.1拖放技術1.拖放拖放是一種用來完成對象上的操作的方法,它通過單擊對象并在移動鼠標時按住鼠標按鈕來實現。
2.拖動模式當對一個可以拖動的對象單擊并在移動鼠標時按住鼠標按鈕,就稱為拖動模式。3.釋放模式當把拖動的對象移動到指定的目標對象并釋放鼠標時,就稱為釋放模式。4.被拖對象即為源對象,是希望在其上完成某個動作的對象。5.目標對象即為拖動目的地,是被拖對象釋放到的對象。。拖放操作中要涉及兩個控件:拖放的控件和放置拖放控件的控件(目標控件)。除了線、橢圓、矩形等繪圖對象外,PowerBuilder中的所有控件都可以拖放。所以說:拖放可以使用戶界面更加友好。拖放涉及PowerBuilder窗口上至少二個控制或對象。拖放技術最典型的用途是直接對數據進行插入和查詢。結束放映第一頁上一頁下一頁最后一頁18.2拖放規則正確實施拖放應當遵循一些規則,以便保證拖放成功。在應用程序中經常使用拖放技術是非常方便的。要注意的主要規則就是拖放是用來表示在特定對象上完成的某個操作的。源對象和由目標對象完成的操作之間的關系是直觀的和有意義的。在確定了實現拖放的用途之后,需要標識出哪個對象用做被拖對象,哪個對象用做目標對象對象。適合作為被拖對象DataWindow行與列代表數據的Picture控件列表框內的項目適合作為目標對象DataWindow
代表動作的Picture控件列表框或下拉列表框命令按鈕需要修改其特性的任意對象說明:不讓拖放操作妨礙控件的正常用法是非常重要的。例如,通常命令按鈕就不適于作為被拖對象。這是因為用戶單擊命令按鈕時通常要用某個處理過程,而不是要啟動拖放對話。如果對被拖對象或目標對象使用了圖片,應確保使用的圖片是有意義的。這種方法為用戶提供了一種更直觀的界面。另外在兩個對象之間進行拖動時,會有一個圖標(稱為拖動圖標)來標明對象處于拖動狀態。拖動圖標應該是有意義的,這樣,用戶才能確切地知道正在拖動哪個對象,以及要把對象拖動到哪里。最后要說的一點是,拖放不應該成為完成為某項任務的唯一的方法。還應當提供鍵盤或菜單選項讓用戶完成同樣的功能,這樣能為用戶提供更多的靈活性,而且不會把用戶栓在特定的輸入設備上。18.3拖放屬性PowerBuilder中的每個可拖放控件都有兩個拖放屬性:DragAuto和DragIcon。這兩個屬性位于控件的Properties視圖的Other標簽頁上。1.DragAuto屬性DragAuto屬性是一個布爾型變量。若某控件的DragAuto屬性為Ture,則當單擊這個控件時,它將自動處于拖動模式。若某控件的DragAuto屬性為False,則當單擊這個控件時,它不會自動處于拖動模式。而必須在適當的事件程序中使用Drag函數來把它置于拖動模式。在窗口畫板中定義某個控件的自動拖動模式的步驟如下:(1)打開該控件的Properties視圖的Other標簽頁。(2)選中DragAuto復選框,即將該控件的DragAuto屬性設為True。
2.DragIcon屬性如果使用DragIcon屬性為某個控件定義了一個圖標,則當該控件處于拖放模式時,這個圖標將代替原控件顯示在屏幕上,表示其處于一個有效的拖放區。當控件處于一個非有效區域時(如窗口的滾動條上),就會顯示非放下(NO_Drop)圖標。定義一個拖放圖標的步驟如下:(1)打開該控件的Properties視圖的Other標簽頁。(2)從圖標列表中選擇一個圖標或使用Browse按鈕選擇一個ICO文件即可。
結束放映第一頁上一頁下一頁最后一頁18.4控件的拖放函數每個可拖放控件都包含兩個與拖放有關的函數:Drag和DraggedObject(1)Drag函數這個函數用來啟動、結束或取消某個拖放操作。格式如下:control.Drag(dragmode)其中,control是某個可拖放的控件,dragmode表示該函數將執行何種操作,其枚舉值如下:·begin!:使某個控件進入Drag模式。·cancel!:結束Drag模式,但不會觸發目標對象的DragDrop事件。·End!:結束Drag模式,并且觸發目標對象的DragDrop事件。結束放映第一頁上一頁下一頁最后一頁(2)DraggedObject函數這個函數用來獲取當前正在被拖動的控件。格式如下:DraggedObject()該函數返回當前正在被拖動的控件,且返回值的數據類型為DragObject,它包含了所有可拖動控件。如果當前沒有任何控件處于拖動狀態,該函數將顯示一條運行錯誤。因此,一般是在目標控件的拖放事件中來使用這個函數。可以使用TypeOf函數來判斷被拖動的控件屬于什么類型,然后把DraggedObject返回值賦給一個相同類型的變量,之后就可以訪問該控件的各種屬性了。
18.4拖放事件
PowerBuilder提供了6個拖放事件如下:DragDrop事件是最重要的事件,當應用程序處于拖動模式并且當鼠標指針在目標對象上時釋放鼠標時,將觸發該事件。即指示一個被拖動的控件是否已經被放在了目標控件上。另外三個事件當應用程序處于拖動模式時,以及當被拖動對象移動到目標對象上時被觸發。被拖對象的移動方式和位置確定觸發哪個事件。DragEnter事件被拖對象的中心(也叫做“熱點”)通過邊沿進入目標對象。即指示一個被拖動的控件是否正進入目標控件。DragLeave事件被拖對象的中心退出目標對象。即指示一個被拖動的控件是否正離開目標控件。DragWithin事件被拖對象的中心位于目標對象內。即指示一個被拖動的控件是否正在目標控件內移動。
結束放映第一頁上一頁下一頁最后一頁BeginDrag
當單擊鼠標左鍵并開始拖動一個控件時BeginrightDrag
當單擊鼠標右鍵并開始拖動一個控件時前4個事件都適用于目標控件,而不適用于被拖動的控件。后2個事件用于被拖動的控件。
18.5拖放操作舉例例1:某企業職工的名冊利用樹狀瀏覽窗口來顯示,數據庫中職工的基本情況利用數據窗口來瀏覽,如下頁圖所示。當用戶用鼠標拖動TreeView控件中的名字到數據窗口中時,便會在數據窗口中顯示該職工的詳細情況。結束放映第一頁上一頁下一頁最后一頁1.創建Application對象2.創建數據窗口對象這里使用PowerBuilder本身所帶的EASDemoDBV4數據庫Employee表。3.創建窗口和添加控件4.腳本說明(1)在Application的Open事件中添加腳本//ProfileEASDemoDBV4SQLCA.DBMS="ODBC"SQLCA.AutoCommit=FalseSQLCA.DBParm="ConnectString=‘DSN=EASDemoDBV4;UID=dba;PWD=sql'"Open(w_newtv)(2)聲明實例變量longll_source,xt_rootitem結束放映第一頁上一頁下一頁最后一頁(3)窗口的Open事件中添加腳本connect;//定義變量longli_rowsint
li_cntstringls_nametreeviewitem
xt_tvitem//顯示數據dw_1.settransobject(sqlca)li_rows=dw_1.retrieve()tv_1.setredraw(false)tv_1.deleteitem(xt_rootitem)//添加第一級項目xt_tvitem.label="職工姓名"xt_tvitem.pictureindex=1xt_tvitem.selectedpictureindex=1xt_rootitem=tv_1.insertitemfirst(0,xt_tvitem)結束放映第一頁上一頁下一頁最后一頁//添加第二級項目:職工姓名forli_cnt=1toli_rows
ls_name=dw_1.getitemstring(li_cnt,"emp_fname")
xt_tvitem.label=ls_name
xt_tvitem.pictureindex=2
xt_tvitem.selectedpictureindex=2tv_1.insertitemlast(xt_rootitem,xt_tvitem)nexttv_1.setredraw(true)(4)在tv_1的clicked事件中添加如下腳本treeviewitemtree_item//獲取要拖動的項目this.getitem(handle,tree_item)如果不是第二級數據項則取消拖放iftree_item.level<>2then this.drag(cancel!)else tv_1.drag(begin!)
ll_source=handleendif 結束放映第一頁上一頁下一頁最后一頁(5)在dw_1的dragdrop事件中添加如下腳本//定義變量longli_rows,li_query_rowtreeview
treeview_dragtreeviewitemtree_itemstringls_name//獲取記錄數li_rows=dw_1.rowcount()//獲取拖動源對象treeview_drag=draggedobject()//獲取拖動的源項目treeview_drag.getitem(ll_source,tree_item)//獲取職工姓名ls_name=tree_item.label//檢索記錄li_query_row=dw_1.find("emp_fname=‘"+ls_name+"'",1,li_rows)dw_1.scrolltorow(li_query_row)結束放映第一頁上一頁下一頁最后一頁(6)在c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 食品飲料行業分析
- 上海閔行職業技術學院《合唱與指揮基礎(2)》2023-2024學年第二學期期末試卷
- 許昌電氣職業學院《老年生活能力評估技術》2023-2024學年第二學期期末試卷
- 南京工業大學《外科學Ⅰ》2023-2024學年第二學期期末試卷
- 2025至2031年中國汽車仿真電氣電路學習實習臺行業投資前景及策略咨詢研究報告
- 2025煤炭買賣合同模板
- 遼寧中醫藥大學杏林學院《足球俱樂部》2023-2024學年第二學期期末試卷
- 道路路基坡度施工方案
- 新建電力線施工方案
- 山西醫科大學晉祠學院《鋼琴基礎(2)》2023-2024學年第一學期期末試卷
- YY-T 0954-2015 無源外科植入物-I型膠原蛋白植入劑
- 2024-2030年中國社區醫院行業市場發展分析及前景趨勢與投資研究報告
- 脫硫技術方案鈉堿法脫硫
- 民兵思想政治教育教案
- (正式版)JTT 1218.5-2024 城市軌道交通運營設備維修與更新技術規范 第5部分:通信
- Python少兒編程全套教學課件
- MOOC 宇宙簡史-南京大學 中國大學慕課答案
- 少先隊輔導員技能大賽培訓
- 2024年高等教育經濟類自考-06270技術經濟學筆試參考題庫含答案
- 統編語文六年級下冊期中測試卷(附答題卡和答案)
- 屈光性白內障手術發展
評論
0/150
提交評論