




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、會計學(xué)1自定義屬性自定義屬性(shxng)與方法與方法第一頁,共32頁。變量(binling)作用域第1頁/共32頁第二頁,共32頁。第2頁/共32頁第三頁,共32頁。【例【例8-1】設(shè)計一個計時器,能夠設(shè)置倒計時的時間,并進(jìn)行】設(shè)計一個計時器,能夠設(shè)置倒計時的時間,并進(jìn)行(jnxng)倒計時。倒計時。 設(shè)計步驟如下:設(shè)計步驟如下: (1) 添加自定義屬性(shxng)。 (2) 建立應(yīng)用程序用戶界面與設(shè)置屬性(shxng)。 8.1 自定義屬性自定義屬性 (3) 編寫代碼。編寫代碼。 編寫微調(diào)器編寫微調(diào)器Spinner1的的InteractiveChange事件代碼:事件代碼:THISFOR
2、M.sec = THIS.Value * 60 &給屬性給屬性SEC賦初始秒數(shù)賦初始秒數(shù)a1 = THIS.Valuea2 = IIF(a1 % 60 0 THISFORM.Command1.Enabled = .T.ELSE THISFORM.Command1.Enabled = .F.ENDIF 編寫命令按鈕編寫命令按鈕Command1的的Click事件事件(shjin)代碼:代碼:THISFORM.Timer1.Enabled=.T.THISFORM.Spinner1.Enabled=.F.THIS.Enabled=.F.編寫計時器編寫計時器Timer1的的Timer事件事件(s
3、hjin)代碼:代碼:THISFORM.sec=THISFORM.sec1a0 = THISFORM.sec & 秒數(shù)秒數(shù)IF a0 =0 a1 = INT(a0 / 60) & 分鐘數(shù)分鐘數(shù) a2 = INT(a1 / 60) & 小時數(shù)小時數(shù)第4頁/共32頁第五頁,共32頁。b0 = IIF(a0 % 60 10,0 + STR(a0 % 60,1),STR(a0 % 60,2) b1 = IIF(a1 % 60 10,0 + STR(a1 % 60,1),STR(a1 % 60,2) b2 = IIF(a2 % 60 10,0 + STR(a2 % 60,1),S
4、TR(a2 % 60,2) THISFORM.Text1.Value = ALLT(b2 +: + b1 + : + b0) THISFORM.Spinner1.Value = a1ELSE THIS.Enabled=.F. THISFORM.Spinner1.Enabled=.T.ENDIF 運(yùn)行程序,設(shè)置運(yùn)行程序,設(shè)置(shzh)時間后按時間后按“開始開始”按鈕,即開始倒計時,時間到時將彈出對話框。按鈕,即開始倒計時,時間到時將彈出對話框。 圖圖8-3 倒計時器倒計時器第5頁/共32頁第六頁,共32頁?!纠纠?-2】在例】在例7-3(P124)中使用數(shù)組屬性來存放方陣的元素。求出主對角線
5、上元素之和以及方陣的最大元素。中使用數(shù)組屬性來存放方陣的元素。求出主對角線上元素之和以及方陣的最大元素。 設(shè)計步驟如下:設(shè)計步驟如下: (1) 添加添加(tin ji)自定義屬性。自定義屬性。A(5,5) (2) 建立應(yīng)用程序用戶界面與設(shè)置屬性建立應(yīng)用程序用戶界面與設(shè)置屬性 。 (3) 修改代碼。修改代碼。 清除表單的清除表單的Load、UnLoad事件代碼,并修改表單的事件代碼,并修改表單的Activate事件代碼:事件代碼:FOR i = 1 TO 25 yes = 1 DO WHILE yes = 1 x = INT(RAND() * 100) yes = 0 FOR j = 1 TO
6、i 1 第6頁/共32頁第七頁,共32頁。IF x = VAL(THIS.a(j) yes = 1 & 如與前面的元素相同如與前面的元素相同(xin tn),則返回到,則返回到Do循環(huán)循環(huán) EXIT ENDIF ENDFOR ENDDO THIS.a(i) = STR(x,3)ENDFORTHISFORM.Text1.Value = THISFORM.Text2.Value = THIS.List1.Refresh 修改修改“計算計算”按鈕按鈕Command1的的Click事件代碼:事件代碼:s = 0FOR I = 1 TO 5 s = s + VAL(THISFORM.a(i,i)
7、ENDFORTHISFORM.Text1.Value = s第7頁/共32頁第八頁,共32頁。第8頁/共32頁第九頁,共32頁?!纠纠?-3】使用微調(diào)器控制色彩,還可以返回色彩的】使用微調(diào)器控制色彩,還可以返回色彩的RGB值值 設(shè)計步驟如下:設(shè)計步驟如下: (1) 添加自定義屬性添加自定義屬性,SPI(3),存放微調(diào)器對象。存放微調(diào)器對象。 (2) 建立應(yīng)用程序用戶界面。建立應(yīng)用程序用戶界面。 選擇新建表單,進(jìn)入表單設(shè)計器,首先增加一個命令按鈕選擇新建表單,進(jìn)入表單設(shè)計器,首先增加一個命令按鈕Command1、一個、一個形狀控件形狀控件Shape1和一個容器和一個容器(rngq)控件控件Co
8、ntainer1,并在,并在Shape1上覆蓋一上覆蓋一個標(biāo)簽控件個標(biāo)簽控件Label1。然后用鼠標(biāo)右鍵單擊容器。然后用鼠標(biāo)右鍵單擊容器(rngq)控件,在彈出的快捷菜控件,在彈出的快捷菜單中選擇單中選擇“編輯編輯”,進(jìn)入容器,進(jìn)入容器(rngq)控件的編輯狀態(tài)(四周出現(xiàn)淺綠色邊界)控件的編輯狀態(tài)(四周出現(xiàn)淺綠色邊界)。在容器。在容器(rngq)中增加兩個文本框中增加兩個文本框Text1、Text2和三個微調(diào)器和三個微調(diào)器Spinner1、Spinner2、Spinner3(如圖(如圖7-7所示)。所示)。 圖7-6 調(diào)色盤 圖7-7 設(shè)計(shj)表單界面第9頁/共32頁第十頁,共32頁。
9、(3) 設(shè)置對象屬性。設(shè)置對象屬性。 (4) 編寫程序代碼。編寫程序代碼。 編寫表單的編寫表單的Init事件事件(shjin)代碼,建立屬性數(shù)組對對象變量的代碼,建立屬性數(shù)組對對象變量的引用:引用:THIS.spi(1) = THIS.Container1.Spinner1THIS.spi(2) = THIS.Container1.Spinner2THIS.spi(3) = THIS.Container1.Spinner3 編寫編寫Spanner1的的InteractiveChange事件事件(shjin)代碼:代碼:r = THISFORM.spi(1).Valueg = THISFORM.
10、spi(2).Valueb = THISFORM.spi(3).ValueTHIS.Parent.Text2.BackColor = RGB(r,g,b)THIS.Parent.Text1.Value = ;Color = RGB(+STR(r,3)+,+STR(g,3)+,+STR(b,3)+)第10頁/共32頁第十一頁,共32頁。 編寫編寫Spanner2的的InteractiveChange事件事件(shjin)代碼:代碼:r = THISFORM.spi(1).Valueg = THISFORM.spi(2).Valueb = THISFORM.spi(3).ValueTHIS.Par
11、ent.Text2.BackColor = RGB(r,g,b)THIS.Parent.Text1.Value = ;Color = RGB(+STR(r,3)+,+STR(g,3)+,+STR(b,3)+)“ 編寫編寫Spanner3的的InteractiveChange事件事件(shjin)代碼:代碼:r = THISFORM.spi(1).Valueg = THISFORM.spi(2).Valueb = THISFORM.spi(3).ValueTHIS.Parent.Text2.BackColor = RGB(r,g,b)THIS.Parent.Text1.Value = ;Colo
12、r = RGB(+STR(r,3)+,+STR(g,3)+,+STR(b,3)+)第11頁/共32頁第十二頁,共32頁。8.2.1 自定義方法自定義方法(fngf)的概念的概念第12頁/共32頁第十三頁,共32頁。第13頁/共32頁第十四頁,共32頁。8.2 自定義方法自定義方法(fngf) 自定義方法的建立與調(diào)用 自定義方法的建立分為兩步:方法的定義和編寫方法代碼。而自定義自定義方法的建立分為兩步:方法的定義和編寫方法代碼。而自定義方法的調(diào)用則要指明調(diào)用的路徑。方法的調(diào)用則要指明調(diào)用的路徑。 方法的命名遵循下列方法的命名遵循下列VFP中名稱的使用原則:中名稱的使用原則: (1) 只能使用字母
13、、漢字、下劃線和數(shù)字。只能使用字母、漢字、下劃線和數(shù)字。 (2) 使用字母、漢字或下劃線作為名稱的開頭。使用字母、漢字或下劃線作為名稱的開頭。 (3) 名稱可以是名稱可以是1至至128個字符。個字符。 (4) 避免使用避免使用VFP的保留字。的保留字。 另外還要注意,方法名不要與變量、數(shù)組名稱相同,盡量取有意義另外還要注意,方法名不要與變量、數(shù)組名稱相同,盡量取有意義的名稱。的名稱。第14頁/共32頁第十五頁,共32頁。【例【例8-4】在例】在例8-3中使用自定義方法中使用自定義方法(fngf)來統(tǒng)一處理微調(diào)器的操來統(tǒng)一處理微調(diào)器的操作。作。 在例在例8-3的基礎(chǔ)上進(jìn)行修改,具體步驟如下:的基
14、礎(chǔ)上進(jìn)行修改,具體步驟如下: (1) 添加新方法(fngf)。進(jìn)入表單設(shè)計器,單擊系統(tǒng)主菜單中“表單”項,在下拉菜單中選擇“新方法(fngf)程序”,打開“新建方法(fngf)程序”對話框。 圖8-6 打開“新建方法程序”對話框圖7-9 自定義的新方法單擊單擊“添加添加”按鈕后再單擊按鈕后再單擊“關(guān)閉關(guān)閉”按鈕,按鈕,退出新建方法程序?qū)υ捒颉4藭r,在屬性退出新建方法程序?qū)υ捒颉4藭r,在屬性窗口的窗口的“方法程序方法程序”選項卡中可以看見新選項卡中可以看見新建的方法及其說明。建的方法及其說明。第15頁/共32頁第十六頁,共32頁。 (2) 編寫自定義方法的代碼。編寫自定義方法的代碼與編寫表單的事
15、件過程代碼一樣,可以雙擊屬性窗口的新方法項SpiCh,或直接打開“代碼”窗口,在“過程”下拉列表(li bio)中選擇新方法SpiCh,即可開始編寫新方法的代碼(圖7-10):r = THISFORM.spi(1).Valueg = THISFORM.spi(2).Valueb = THISFORM.spi(3).ValueTHIS.Container1.Text2.BackColor = RGB(r,g,b)THIS.Container1.Text1.Value=Color= RGB(+STR(r,3)+,+STR(g,3)+,+STR(b,3)+) 編寫自定義方法(fngf)的代碼第16頁
16、/共32頁第十七頁,共32頁。 (3) 自定義方法的調(diào)用。自定義方法的調(diào)用與表單的內(nèi)部方法的調(diào)用一樣,可以在事件過程或其他(qt)的方法代碼中調(diào)用。 修改Spanner1的InteractiveChange事件代碼:THISFORM.spich 修改Spanner2的InteractiveChange事件代碼:THISFORM.spich 修改Spanner3的InteractiveChange事件代碼:THISFORM.spich 表單的運(yùn)行結(jié)果與例8-3完全相同。第17頁/共32頁第十八頁,共32頁。1. 參數(shù)的傳遞 若想使方法能夠接收參數(shù),只需在方法代碼(di m)的開始增加命令行:PA
17、RAMETERS 形參表或LPARAMETERS 形參表 調(diào)用時使用括號將實(shí)參括起:對象名.方法名(實(shí)參表)第18頁/共32頁第十九頁,共32頁。第19頁/共32頁第二十頁,共32頁。【例8-5】在一個窗口中包含3個命令按鈕,當(dāng)用戶單擊其中(qzhng)一個時,要求其他個別按鈕不能使用: 單擊Command1后 單擊Command3后 單擊Command2后 三個按鈕第20頁/共32頁第二十一頁,共32頁。 設(shè)計步驟如下: 應(yīng)用程序用戶界面的建立與對象屬性的設(shè)置參見圖8-10,下面介紹代碼的編寫。 (1) 添加新方法。 進(jìn)入表單設(shè)計器,單擊系統(tǒng)(xtng)主菜單中“表單”項,在下拉菜單中選擇“
18、新方法程序”,打開“新建方法程序”對話框。 在“名稱”欄中填入自定義方法的名稱:CmdClk,單擊“添加”按鈕后再單擊“關(guān)閉”按鈕,退出新建方法程序?qū)υ捒?。此時,在屬性窗口的“方法程序”選項卡中可以看見新建的方法。第21頁/共32頁第二十二頁,共32頁。 (2) 編寫自定義方法CmdClk的代碼:LPARAMETERS xDO CASE CASE x = THIS.Command1 THIS.Command2.Enabled=.F. CASE x = THIS.Command2 THIS.Command1.Enabled=.F. CASE x = THIS.Command3 THIS.Comm
19、and1.Enabled=.T. THIS.Command2.Enabled=.T.ENDCASE (3) 三個命令按鈕的Click事件(shjin)代碼完全相同:THISFORM.cmdclk(THIS) 說明:要注意在不同代碼中THIS所代表的不同對象。第22頁/共32頁第二十三頁,共32頁。2. 參數(shù)傳遞的方式參數(shù)傳遞的方式(fngsh) 參數(shù)傳遞的方式參數(shù)傳遞的方式(fngsh)分為傳址方式分為傳址方式(fngsh)和傳值方式和傳值方式(fngsh)。 傳址方式傳址方式是指主程序?qū)?shí)際參數(shù)在內(nèi)存中的地址傳給被調(diào)用的方法,由形式參數(shù)接收,而形式參數(shù)也使用該地址。即實(shí)際參數(shù)與形式參數(shù)使用相
20、同的內(nèi)存地址,是指主程序?qū)?shí)際參數(shù)在內(nèi)存中的地址傳給被調(diào)用的方法,由形式參數(shù)接收,而形式參數(shù)也使用該地址。即實(shí)際參數(shù)與形式參數(shù)使用相同的內(nèi)存地址,形式參數(shù)的內(nèi)容一經(jīng)改變,實(shí)際參數(shù)的內(nèi)容也將跟著改變。形式參數(shù)的內(nèi)容一經(jīng)改變,實(shí)際參數(shù)的內(nèi)容也將跟著改變。 傳值方式傳值方式是指主程序?qū)?shí)際參數(shù)的一個備份傳給被調(diào)用的方法,這個備份可以被方法改變,但在是指主程序?qū)?shí)際參數(shù)的一個備份傳給被調(diào)用的方法,這個備份可以被方法改變,但在主程序中變量的原值不會改變。主程序中變量的原值不會改變。在默認(rèn)的情況下,在默認(rèn)的情況下,VFP在調(diào)用方法時采用傳值方式。如果要改變參數(shù)的傳遞方式,可以采用以下兩種方法:在調(diào)用方法時
21、采用傳值方式。如果要改變參數(shù)的傳遞方式,可以采用以下兩種方法: (1) 使用使用SET UDFPARMS TO VALUE|REFERENCE命令來強(qiáng)制改變參數(shù)的傳遞方式。命令來強(qiáng)制改變參數(shù)的傳遞方式。 (2) 使用使用符號來強(qiáng)制符號來強(qiáng)制VFP使用傳址的參數(shù)傳遞方式。使用傳址的參數(shù)傳遞方式。第23頁/共32頁第二十四頁,共32頁?!纠?-6】編寫求最大公約數(shù)的自定義方法,輸入的兩個整數(shù)按值傳遞,求出的最大公約數(shù)按地址傳遞。 設(shè)計步驟如下: 應(yīng)用程序用戶界面的建立與對象(duxing)屬性的設(shè)置參見圖7-13,下面介紹代碼的編寫:圖7-13 求最大公約數(shù) (1) 首先首先(shuxin)添加自
22、定義方法添加自定義方法Hcf。 (2) 編寫自定義方法Hcf的代碼:PARAMETERS m, n, ZIF m n t = m m = n n = tENDIFr = m % n第24頁/共32頁第二十五頁,共32頁。DO WHILE r 0 m = n n = r r = m % nENDDOZ = n & 將求出的最大公約數(shù)賦值給變量將求出的最大公約數(shù)賦值給變量Z (3) 編寫編寫“計算計算”按鈕的按鈕的Click事件代碼,調(diào)用自定義方法事件代碼,調(diào)用自定義方法(fngf)Hcf:x=VAL(THISFORM.Text1.Value)y=VAL(THISFORM.Text2.Va
23、lue)a=0IF x*y0 THISFORM.hcf(x,y,a) & 變量變量a按傳址方式傳遞按傳址方式傳遞 THISFORM.Label2.Caption=兩數(shù)的最大公約是兩數(shù)的最大公約是:+ALLT(STR(a)ENDIF例題:數(shù)據(jù)傳遞例題:數(shù)據(jù)傳遞.prg(調(diào)用過程時參數(shù)的傳遞)(調(diào)用過程時參數(shù)的傳遞)第25頁/共32頁第二十六頁,共32頁。3. 方法的返回值方法的返回值 若想使方法能夠返回一個值,只需在方法代碼的結(jié)束處增加若想使方法能夠返回一個值,只需在方法代碼的結(jié)束處增加(zngji)命令行:命令行:RETURN 表達(dá)式表達(dá)式 如果缺省表達(dá)式,如果缺省表達(dá)式,VFP將自動
24、返回將自動返回 .T.。 當(dāng)代碼執(zhí)行到當(dāng)代碼執(zhí)行到RETURN命令,就會立即返回到主程序中。命令,就會立即返回到主程序中。 在主程序中可用以下形式調(diào)用方法:在主程序中可用以下形式調(diào)用方法: (1) 在表達(dá)式中調(diào)用方法。如:在表達(dá)式中調(diào)用方法。如:k = PI()*THISFORM.Demo(r) (2) 在賦值語句中調(diào)用方法。如:在賦值語句中調(diào)用方法。如:k = THISFORM.Demo(r) (3) 以等號命令調(diào)用方法。如:以等號命令調(diào)用方法。如:= THISFORM.Demo(r)注:以等號命令調(diào)用方法將舍棄返回值。注:以等號命令調(diào)用方法將舍棄返回值。第26頁/共32頁第二十七頁,共32頁。【例8-7】改寫例8-6中的自定義方法,使其能夠(nnggu)返回值。然后通過在表達(dá)式中調(diào)用方法,得到三個整數(shù)的最大公約數(shù)。 設(shè)計步驟如下: 應(yīng)用程序用戶界面的建立與對象屬性的設(shè)置參見圖7-14,下面介紹代碼的編寫:圖7-14 求最大公約數(shù) (1) 首先添加首先添加(tin ji)自定義方
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 寧波十校2025屆高三3月聯(lián)考語文試卷(含答案解析)
- 2024-2025學(xué)年新教材高中物理 第二章 勻變速直線運(yùn)動的研究 第四節(jié) 自由落體運(yùn)動教學(xué)實(shí)錄 新人教版必修1
- 三農(nóng)產(chǎn)品品牌化經(jīng)營方案
- 2023一年級數(shù)學(xué)下冊 2 20以內(nèi)的退位減法第6課時 解決問題(1)配套教學(xué)實(shí)錄 新人教版
- 2024年泰山版小學(xué)信息技術(shù)二年級上冊《8 特快專遞沒我快》教學(xué)設(shè)計
- 7可愛的動物(教學(xué)設(shè)計)-2023-2024學(xué)年道德與法治一年級下冊統(tǒng)編版
- 2024-2025學(xué)年高中歷史 第一單元 東西方先哲 第3課 百科全書式的學(xué)者亞里士多德(2)教學(xué)教學(xué)實(shí)錄 岳麓版選修4
- 2023一年級數(shù)學(xué)上冊 8 20以內(nèi)的進(jìn)位加法練習(xí)課(2-3)教學(xué)實(shí)錄 新人教版
- 工程施工項目管理合作協(xié)議書
- 2024-2025學(xué)年新教材高中物理 第十章 靜電場中的能量 第三節(jié) 電勢差與電場強(qiáng)度的關(guān)系教學(xué)實(shí)錄 新人教版必修3
- 臨時工雇傭合同范本2025年度
- (二調(diào))武漢市2025屆高中畢業(yè)生二月調(diào)研考試 地理試卷
- “艾梅乙”感染者消除醫(yī)療歧視制度-
- 2024-2025學(xué)年八年級地理下冊第七章《南方地區(qū)》檢測卷(人教版)
- 森林防火知識
- 2025年黑龍江林業(yè)職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫帶答案
- 2025-2030年中國測序儀市場運(yùn)行態(tài)勢及發(fā)展規(guī)劃分析報告
- 第二單元第1課《精彩瞬間》第2課時 課件-七年級美術(shù)下冊(人教版2024)
- 《物理前沿科學(xué)》課件
- 2025年公共營養(yǎng)師三級理論試題及答案
- 餐廳市場調(diào)研與定位
評論
0/150
提交評論