版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、用PBPB做一個(gè)通用右鍵菜單做一個(gè)通用右鍵菜單對(duì)象被右鍵單擊就彈出一個(gè)功能菜單是Windows應(yīng)用程序一項(xiàng)不可缺少的功能。在PowerBuilder應(yīng)用開發(fā)中,可在需彈出右鍵菜單對(duì)象的rbuttondown事件中調(diào)用該菜單的Popmenu()方法實(shí)現(xiàn)這一功能。但多數(shù)情況下,應(yīng)用中有多處要用到不同的彈出式菜單,如一一用這種方法就需要做大量的工作。能不能做一個(gè)通用的菜單,可以用任何對(duì)象的rbuttondown事件激發(fā)彈出,并在彈出前動(dòng)態(tài)改變
2、彈出菜單項(xiàng)的內(nèi)容,當(dāng)點(diǎn)擊菜單項(xiàng)時(shí)又可執(zhí)行被右擊對(duì)象的相應(yīng)用戶事件?由于這一技術(shù)最大的特點(diǎn)是當(dāng)函數(shù)創(chuàng)建成功后,可在任何應(yīng)用的任何對(duì)象中隨心所欲的使用,隨時(shí)隨地彈出自己想要顯示的菜單項(xiàng),并執(zhí)行相應(yīng)的自己需要的功能腳本,但目前各種資料上鮮有系統(tǒng)、成型的介紹。一、創(chuàng)建彈出菜單m_popup1、創(chuàng)建一個(gè)菜單m_popup定義菜單條m_main,其下有十五個(gè)菜單項(xiàng),分別命名為m_item1m_item2……m_item1,各項(xiàng)的顯示文本(text)
3、分別為item1item2……item15;2、為m_popup菜單定義一個(gè)Powerobject類型的InstanceVariables變量:Anyobject,腳本為:PowerobjectAnyobject3、給m_item1m_item2……m_item15各菜單項(xiàng)的Clicked事件下分別輸入腳本:Anyobject.triggerevent(“ue_item1“)m_item1的clicked事件Anyobject.trig
4、gerevent(“ue_item2“)……Anyobject.triggerevent(“ue_item15“)4、定義幾個(gè)菜單函數(shù):1)setmenuitem(stringitemstring)返回值為Null。參數(shù)Itemstring是由多個(gè)子串組成的。各個(gè)子串間用“|”間隔,每個(gè)子串為一個(gè)菜單項(xiàng)的顯示文本(text)。該函數(shù)功能是把itemstring分解為多個(gè)子串,并把子串賦給相應(yīng)菜單項(xiàng)的text。腳本如下:intitempo
5、sitemder=1listringcurrentitemmessagebox(“l(fā)en(itemstring)“string(len(itemstring)))iflen(itemstring)=0thenreturnelseitempos=pos(itemstring“|“)messagebox(“itempos“string(itempos))DOWHILEitempos0itempos為間隔符“|“的位置currentitem=
6、left(itemstringitempos1)取出子串messagebox(“currentitem“string(currentitem))itemstring=(itemstringitempos1)this.m_main.item[itemder].text=currentitemitempos=pos(itemstring“|“)messagebox(“itempos=pos(itemstring“string(itempos
7、))返回值全為默認(rèn)的NULL事件ue_item1腳本:dw_1.retrieve()事件ue_item2腳本:longnewrownewrow=dw_1.row(0)dw_1.scrolltow(newrow)事件ue_item3腳本:dw_1.row(0)事件ue_item4腳本:dw_1.update()這樣,只要用戶單擊dw_1彈出的右鍵菜單,就可完成對(duì)dw_1的插入、刪除、修改等功能。三、推廣為全程函數(shù)如果應(yīng)用中有許多地方要用此
8、功能,我們可以把dw_1的rbuttondown事件腳本改造成一個(gè)全程函數(shù)。1、將變量om_1定義為global變量:m_popupom_12、定義一個(gè)全程函數(shù)pupmenu(powerobjectsenderstringitemstringintegerxintegery)返回值Null。其中參數(shù)sender為被右擊的對(duì)象,itemstring為彈出菜單的菜單項(xiàng)字符串,x、y為菜單彈出的坐標(biāo)位置。腳本如下:ifnotisvalid(o
9、m_1)thenom_1=CREATEm_popupendifom_1.anyobject=senderom_1.setmenuitem(itemstring)sender.triggerevent(“ue_befepop“)激活sender用戶事件。om_1.popupmenu(xy)這樣,上述dw_1的rbuttondown事件腳本就可改寫為:stringitems=“刷新插入刪除修改“popmenu(thisitemsthis.x
10、this.pointerx()this.ythis.pointery())注意:在MDI應(yīng)用中,popmenu()函數(shù)需要改為:popmenu(thisitemsw_frame.pointerx()w_frame.pointery())其中w_frame為MDI主窗口名。在函數(shù)popmenu中又激活了被右擊對(duì)象的ue_befepop用戶事件。如有必要,你可以給被右擊對(duì)象定義一個(gè)ue_befepop事件,在該事件中可調(diào)用om_1.seti
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 做一個(gè)快樂的人
- 做一個(gè)書香女人
- 做一個(gè)“精致護(hù)士”
- 做一個(gè)文明人
- 做一個(gè)有趣味的人
- 做一個(gè)守時(shí)的員工
- 做一個(gè)智慧的教師
- 做一個(gè)有修養(yǎng)的人
- 做一個(gè)守禮之人
- 做一個(gè)有道德的人
- 做一個(gè)有智慧的家長(zhǎng)
- 怎樣做一個(gè)更有魅力的人
- 做一個(gè)學(xué)生喜歡的老師
- 做一個(gè)思路清晰的人
- 做一個(gè)成功的銷售人員
- 做一個(gè)思考型的教師
- 如何做一個(gè)優(yōu)雅的人
- 做一個(gè)汽車設(shè)計(jì)師
- 做一個(gè)成功的社會(huì)人
- 做一個(gè)精神明亮的人
評(píng)論
0/150
提交評(píng)論