Microsoft-Visual-FoxPro-.初級(jí)教程_第1頁
Microsoft-Visual-FoxPro-.初級(jí)教程_第2頁
Microsoft-Visual-FoxPro-.初級(jí)教程_第3頁
Microsoft-Visual-FoxPro-.初級(jí)教程_第4頁
Microsoft-Visual-FoxPro-.初級(jí)教程_第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Microsoft Visual FoxPro 6.0初級(jí)教程目 錄Microsoft Visual FoxPro 6.0中文版教程1初級(jí)教程目錄1第一課 開場白2第二課 見識(shí)一下面向?qū)ο蟮木幊?第三課 對(duì)象、屬性、事件、方法14屬性(property):15事件(event):15方法(method):15第四課 常用的對(duì)象、屬性、事件、方法16對(duì)象(object):16屬性(property):17事件(event):23方法(methord):24第五課 常用編程命令及常用函數(shù)24命令24函數(shù)30第六課 編一個(gè)完整的軟件36第七課 編程中的一些小技巧37一、 復(fù)制37二、 縮格及空行38

2、三、 在程序中插入對(duì)象名稱39四、 精確調(diào)整對(duì)象位置39五、 為文件寫說明39六、 重命名文件40七、修改數(shù)據(jù)表時(shí)調(diào)整字段位置40八、調(diào)整表格中各列的位置40九、設(shè)置控件的tabindex位置41十、改程序前應(yīng)先改系統(tǒng)分析41十一、刪除工程管理器中的文件42十二、將磁盤上的文件添加到工程管理器中42十三、設(shè)置主程序42第八課 程序的調(diào)試42第九課 軟件的編譯及制作安裝盤45軟件的編譯45制作安裝盤46第一課 開場白很簡單,只講兩個(gè)問題:一、工程管理器;二、數(shù)據(jù)庫和表的區(qū)別。一、在開發(fā)一個(gè)軟件工程的過程中往往會(huì)產(chǎn)生大量的各種文件,有時(shí)開發(fā)者自己都不知道有些什么文件了,因此從VISUAL FOXP

3、RO開始引入了工程管理器,以便更好地管理這些文件。工程管理器由兩個(gè)文件組成,擴(kuò)展名分別是“PJX和“PJT。 二、學(xué)過FOX的人都知道數(shù)據(jù)庫是什么,就是有字段、記錄的一個(gè)二維表,也就是那個(gè)DBF文件,可是到了VISUAL FOXPRO 3.0,這數(shù)據(jù)庫就不叫數(shù)據(jù)庫了,它干脆就叫“表,英文叫“TABLE。而數(shù)據(jù)庫是包含有多個(gè)表的文件,擴(kuò)展名是“DBC,也就是數(shù)據(jù)庫的庫,引入DBC文件的一個(gè)主要目的是為了對(duì)表能夠很好地分類管理。而不包含在數(shù)據(jù)庫中的表,叫做自由表,其使用方法與原來的數(shù)據(jù)庫根本相同。如果你對(duì) FOXPRO 一點(diǎn)都不了解,那就先看看這里。第二課 見識(shí)一下面向?qū)ο蟮木幊涛覀兿葋砭幰粋€(gè)幸運(yùn)

4、7游戲機(jī)程序,也可以叫做一個(gè)游戲軟件,親身感受一下面向?qū)ο缶幊淌窃趺椿厥隆R苍S您已經(jīng)有了面向過程的編程即傳統(tǒng)的編程經(jīng)驗(yàn),那么在這里您會(huì)感到面向?qū)ο缶幊陶媸且患芟硎艿氖虑椤H绻鷽]有面向過程的編程經(jīng)驗(yàn),那太好了,您永遠(yuǎn)都不會(huì)陷入一大堆復(fù)雜的代碼中找不著北,而能在輕松之中便編出具有專業(yè)水準(zhǔn)的程序。言歸正傳,前面講過編一個(gè)軟件會(huì)產(chǎn)生很多文件,如果只是編一個(gè)簡單的軟件,也可能只有一個(gè)文件,但不管多少,我們首先要在硬盤上為這個(gè)軟件建一個(gè)目錄,然后在編程的過程中,將產(chǎn)生的有關(guān)文件全部放在這個(gè)目錄中以便于管理。目錄建好后啟動(dòng)FOXPRO 5.03.0也行,啟動(dòng)后將看到圖1。開始編軟件之前先說明一下這是一個(gè)

5、什么軟件,它是一個(gè)類似賭博的游戲機(jī),圖2。 按下開始按鈕后,上面的三個(gè)窗口就會(huì)出現(xiàn)三個(gè)隨機(jī)數(shù),如果其中有“7那么贏,否那么為輸?,F(xiàn)在開始正式編程,按第一課講的首先要建一個(gè)工程管理器它和上面所說的目錄不同,目錄是為了把所有文件放在一起以免與其它文件混淆,工程管理器那么是將各種文件分類,建立的方法是調(diào)用菜單中的“文件下的“新建命令,或按工具欄上的“新建按鈕,接著會(huì)出現(xiàn)圖3。 按新建文件隱含為新建工程管理器,即文件類型為“工程,接著在下面的窗口中輸入工程管理器的文件名如“xy7,不用擴(kuò)展名),然后選擇保存目錄,即在上面的“保存在選擇框中找到您所建的目錄,并將其翻開,圖4。 接著出現(xiàn)圖5。 按“文檔得

6、到圖6,注意此時(shí)“表單是反白的,如不是用鼠標(biāo)點(diǎn)一“表單。 按“新建得到圖7。 按“新建表單得到圖8。 這里我們看到有一個(gè)表單設(shè)計(jì)器,其中的“Form1就是要用來編游戲機(jī)的界面,也就是被稱為“表單的東西,現(xiàn)在我們就要用這個(gè)表單設(shè)計(jì)器來設(shè)計(jì)我們的游戲機(jī)界面。下面開始制做顯示數(shù)字的文本框,調(diào)出表單控件工具欄,方法為按工具欄按鈕,出現(xiàn)圖9: 調(diào)用文本框控件,即按下文本框按鈕,把鼠標(biāo)移到表單Form1上,其光標(biāo)應(yīng)變成“十字型,將鼠標(biāo)移到一個(gè)您認(rèn)為適當(dāng)?shù)奈恢?,按下左鍵,向右下方拉,使拉出的文本框大小適當(dāng),松手,得到圖10,在此約定,以后如沒有特別說明,“按鼠標(biāo)即指按鼠標(biāo)左鍵,其它如“點(diǎn)、“按、“用鼠標(biāo)按等

7、也同樣: 這樣就做好了文本框Text1,用來在軟件中顯示第一個(gè)隨機(jī)數(shù)。如覺得位置不理想,可用鼠標(biāo)按住它,將其移到適宜的位置,如感到大小不適宜,可用鼠標(biāo)按住文本框四周的8個(gè)黑點(diǎn)中的任一個(gè),上下左右拉動(dòng)來改變其大小。接下來設(shè)置文本框的其它屬性,如字體大小,用鼠標(biāo)按“屬性窗口按鈕如該按鈕是凹下的,如圖,說明屬性窗口已調(diào)出,只是被表單控件工具欄給擋住了,再按一下工具欄的按鈕關(guān)閉工具欄即可,然后在屬性窗口中點(diǎn)“布局,再按上下滾動(dòng)條找到“FontSize屬性,即“字體尺寸屬性,如圖11。 按上面設(shè)置框的向下箭頭,將字體設(shè)為48,如圖12, 文本框變?yōu)槿鐖D13所示,顯示的字體變大了。 另一個(gè)需要設(shè)置的屬性是

8、“水平對(duì)齊方式,在布局中找到“Alignment屬性,在第一行,將其設(shè)為“2中間,方法與設(shè)字體大小是差不多的,想必聰明的您不用我給圖示也能做到了。這樣第一個(gè)文本框便設(shè)置好了,按同樣方法做出第2、3個(gè)文本框,如圖14。 這里要注意一點(diǎn),在設(shè)置哪個(gè)文本框時(shí),一定要選中所要設(shè)的對(duì)象,即能看到其周圍有8個(gè)黑點(diǎn),如沒有,需用鼠標(biāo)點(diǎn)它一下,今后設(shè)置其它的對(duì)象時(shí)也是一樣。下一步制做顯示輸、贏的文本標(biāo)簽,調(diào)出工具欄如工具欄被屬性窗口擋住了,再按一下屬性窗口按鈕將其關(guān)閉,按標(biāo)簽按鈕,按制做文本框類似的方法做出標(biāo)簽,如圖15。設(shè)置其標(biāo)題,調(diào)出屬性窗口,在布局中找到“Caption屬性,即“標(biāo)題屬性,在設(shè)置框中輸入

9、“贏,然后回車,結(jié)果如圖16。與文本框相同的方法設(shè)置字體大小為36,如圖17。接著將這個(gè)標(biāo)簽設(shè)為看不見,因?yàn)橐A了以后才把它顯示出來,所以事先應(yīng)是看不見的,方法是在布局中找到“Visible屬性,即“可見屬性,其隱含為“真,即“T,也就是能看見,將其設(shè)為假,即“F,如圖18,那么程序一旦運(yùn)行起來,它就看不見了,當(dāng)然在設(shè)計(jì)程序時(shí)它還是看得見的。至于想知道贏了后怎樣讓它顯示出來,那您接著往下看。然后按同樣方法制做“輸字,自然也要設(shè)為看不見,否那么您就只輸不贏了,做好后如圖19。接下來制做按鈕,按下控件工具欄上的“命令按鈕 ,在表單上以制做文本框的同樣方法做出第一個(gè)按鈕,如圖20, 然后設(shè)置其標(biāo)題為

10、“開始,方法同設(shè)置標(biāo)簽的標(biāo)題,設(shè)好后如圖21。 之后如法炮制做出“退出按鈕。最后再給這個(gè)表單也設(shè)個(gè)標(biāo)題,用鼠標(biāo)點(diǎn)一下表單“Form1的空白地方,不要點(diǎn)其中的控件,如文本框、按鈕等,然后如前一樣設(shè)置其“Caption屬性為“幸運(yùn)7游戲機(jī),做好后如圖22。 到此為止,我們這個(gè)軟件的界面就全部做好了。怎么樣,不難吧?下面要做的事情就是為按鈕設(shè)置動(dòng)作程序,也就是當(dāng)按鈕被按下這一事件發(fā)生后電腦要做些什么事,這就要為按鈕的相應(yīng)動(dòng)作編一些代碼,先來編“退出按鈕,因?yàn)樗葦M簡單。一個(gè)按鈕,或者說一個(gè)對(duì)象,可以有很多動(dòng)作,換句話說可以有很多事件發(fā)生在它身上,但對(duì)于已經(jīng)使用的對(duì)象來說,可能只有某一個(gè)或幾個(gè)動(dòng)作有用

11、。對(duì)于按鈕來說最常發(fā)生的事件就是被鼠標(biāo)左鍵按動(dòng),我們這個(gè)軟件中按鈕所發(fā)生的事件也就是這個(gè),對(duì)“退出按鈕來說,就是它在被按動(dòng)后程序要退出,現(xiàn)在我們就來編完成這一任務(wù)的代碼。方法是:先用鼠標(biāo)點(diǎn)一下“退出按鈕,使其被選中,這樣后面編的代碼才是它的,否那么就可能編到別的對(duì)象中去了,這樣就達(dá)不到要求。在屬性窗口中選擇“方法程序,然后在其中找到“Click Event,即“按動(dòng)事件,如圖23。 雙擊“Click Event,出現(xiàn)編程窗口,如圖24, 注意,其中的對(duì)象窗口中是“command2,即退出按鈕的名稱名稱與標(biāo)題不是一回事,雖然他們可以一樣,詳細(xì)的以后再講,過程窗口中顯示的是“Click,即現(xiàn)在所編

12、的程序也叫過程是針對(duì)“按動(dòng)事件的。如感到屬性窗口擋住了編程窗口,可將其關(guān)閉。這里的程序只有一句話:thisform.release意思是“本表單.釋放,也就是將這個(gè)表單關(guān)閉,這樣整個(gè)軟件也就運(yùn)行結(jié)束了。程序?qū)懞煤笕鐖D25, 然后選擇菜單上的“文件下面的“關(guān)閉命令。就這么簡單?就這么簡單!“退出按鈕編好后就要編“開始按鈕,這個(gè)按鈕會(huì)稍微復(fù)雜一點(diǎn),同樣先按前面的方法進(jìn)入程序窗口,但這次應(yīng)是“Command1的“Click事件。代碼如圖26。 其中:if thisform.text1.value=7 .or. ; thisform.text2.value=7 .or. ; thisform.text

13、3.value=7是一條語句,由于一行寫出來太長,不易讀,故將其分為三行,除最后一行外,前面每行都以分號(hào)結(jié)尾,這樣系統(tǒng)就知道把它們看做是一行來處理。另外“or或者兩邊各有一個(gè)點(diǎn),不能少。程序中所有的命令、運(yùn)算符號(hào),如等號(hào)、分號(hào)、點(diǎn)號(hào)等,都必須是半角字符。每行語句后面,從“&開始的文字是用于對(duì)程序進(jìn)行解釋和說明的,不會(huì)影響程序的運(yùn)行,有也可,沒有也可,但如果有的話,前面一定要以“&開頭,并與命令語句空開一格以上。與“退出按鈕一樣,“開始按鈕的程序?qū)懞煤?,關(guān)閉程序設(shè)計(jì)窗口,這樣整個(gè)程序就編好了。程序編好后,先按一下表單設(shè)計(jì)器窗口,再按菜單上“文件下的“保存命令,即將編好的內(nèi)容保存到磁盤上,接著按菜

14、單上“文件下的“關(guān)閉命令,這樣整個(gè)軟件就編完了。如果沒有先按一下表單設(shè)計(jì)器,即沒有將表單設(shè)計(jì)器的窗口激活窗口的標(biāo)題為藍(lán)底白字,可能造成關(guān)閉了其它的窗口。表單設(shè)計(jì)關(guān)閉后可看到如圖27情況。 這時(shí)先用鼠標(biāo)點(diǎn)一下“xy7表單,使其反白如果已經(jīng)是反白的,當(dāng)然不需再點(diǎn)了,然后按工程管理器上的“運(yùn)行(U),如果程序沒有錯(cuò)的話,軟件便能正常運(yùn)行起來??纯茨氖謿庠鯓?,能不能第一次就贏,我編好這個(gè)程序后第一次按下就出了“7,手氣真不錯(cuò)。如果有錯(cuò)誤,會(huì)出現(xiàn)類似圖28的顯示, 這時(shí)按“取消,然后按“退出退出軟件,如果“退出按鈕不起作用,那么按窗口右上角的按鈕來關(guān)閉。之后在工程管理器中按修改進(jìn)入表單設(shè)計(jì)器,查出錯(cuò)誤

15、的地方,改正即可。退出表單設(shè)計(jì)器后,按“文件下的“退出命令,便可退出FoxPro系統(tǒng)。如果沒有翻開過其它的工程管理器,下次啟動(dòng)FoxPro系統(tǒng)后,該工程管理器會(huì)自動(dòng)翻開,如沒有翻開,可按“文件下的“翻開命令,或按鈕,找到所要的目錄和工程管理器文件如“xy7.pjx翻開即可。有時(shí)翻開可能看不到表單名,看到的是如圖29所示的情況, 這時(shí)只要按表單前面的“+號(hào)將其變?yōu)椤?號(hào),就可看到所有的表單了。面向?qū)ο蟮木幊毯苋菀装?,希望您看了我們這一課后已有了充足的信心來學(xué)好VFP。第三課 對(duì)象、屬性、事件、方法經(jīng)過上一課我們已經(jīng)對(duì)對(duì)象、屬性、事件有了初步認(rèn)識(shí),這一課我們?cè)僮鲞M(jìn)一步講解。對(duì)象(object):就

16、是我們軟件中所看到表單、文本框、按鈕、標(biāo)簽等等東西,一個(gè)軟件的外觀主要也就是由這些東西組成,那么我們要編軟件就應(yīng)該掌握各種對(duì)象的使用方法??煞旁诒韱蝺?nèi)的對(duì)象,如按鈕、文本框等也常常被叫作控件,我們?cè)诤竺娴恼n程中也經(jīng)常會(huì)用到這個(gè)詞。所謂面向?qū)ο蟮木幊?,就是我們?cè)诰幊痰倪^程中是看著這些東西來編程,而不是用一大堆的語言代碼來編出這些東西,因此面向?qū)ο蟮木幊谭浅V庇^,在編的過程中就能看見程序運(yùn)行起來的樣子。另外由于不需用語言來構(gòu)造這些對(duì)象,只是象畫圖一樣將它們畫出來,其大小及位置也不須用精確的數(shù)字來表示,你喜歡畫多大就畫多大,您無須知道諸如長是100、寬是80當(dāng)然您想知道的話也可以在屬性窗口中查到,這

17、樣使得編程變得非常簡單。屬性(property):就是對(duì)象的性質(zhì),如長、寬、放的位置、顏色、標(biāo)題、字體大小等等。為了到達(dá)我們所編軟件的目的,也為了使軟件運(yùn)行的時(shí)候各種界面看起來舒服,我們必須在設(shè)計(jì)軟件時(shí)對(duì)每個(gè)對(duì)象的有關(guān)屬性做適當(dāng)?shù)脑O(shè)置。所謂有關(guān),就是對(duì)于一個(gè)對(duì)象來說,在一個(gè)軟件中只有局部與這個(gè)軟件有關(guān)的屬性需要設(shè)置,而大局部可能不需要設(shè)置,只需使用它們隱含的設(shè)置就行了,而同一種對(duì)象在另一個(gè)地方,可能需要設(shè)置的屬性又不同了。對(duì)于屬性的設(shè)置,有些只需用鼠標(biāo)做適當(dāng)?shù)耐蟿?dòng)即可,如長、寬、放的位置等,當(dāng)然它們也可以在屬性窗口中設(shè)置,另一些那么必須在屬性窗口中進(jìn)行設(shè)置,如字體、顏色、標(biāo)題等。事件(even

18、t):就是可能會(huì)發(fā)生在對(duì)象上的事情,也可以說我們對(duì)對(duì)象所做的操作或者系統(tǒng)對(duì)某個(gè)對(duì)象的操作,如按鈕被按動(dòng)單擊、對(duì)象被拖動(dòng)、被改變大小、被鼠標(biāo)左鍵雙擊等等。在一個(gè)軟件中,總會(huì)有一些對(duì)象在運(yùn)行時(shí)會(huì)被我們操作,當(dāng)然我們不是平白無故去操作一個(gè)對(duì)象,總是希望這個(gè)對(duì)象在被我們操作后能做出我們所期望的反響,如退出按鈕在被按動(dòng)后,我們就希望它使軟件結(jié)束運(yùn)行。而這一反映即使是同一種對(duì)象在不同的軟件中,或在同一個(gè)軟件中的不同地方,我們所需要的反映都是不同的,比方同樣是按鈕,“開始和“退出在按下后所產(chǎn)生的效果不同。為了使得對(duì)象在某一事件發(fā)生時(shí)能夠做出所需要的反響,我們就必須針對(duì)這一事件編出相應(yīng)的程序代碼來完成我們的目

19、標(biāo)。如一個(gè)對(duì)象的某個(gè)事件被編入了相應(yīng)的代碼,那么軟件運(yùn)行時(shí),當(dāng)這一事件發(fā)生如按鈕被按動(dòng),相應(yīng)的程序段就被激活,并開始執(zhí)行,如這一事件不發(fā)生,那么這段程序就不會(huì)運(yùn)行。而沒有編有代碼的事件,即使發(fā)生也不會(huì)有任何反響。方法(method):也叫“方法程序。前面三個(gè)概念在上一課已接觸過了,“方法那么是個(gè)新概念,它是指對(duì)象所固有完成某種任務(wù)的功能,可由我們?cè)谛枰臅r(shí)候調(diào)用?!胺椒ㄅc“事件有相似之處,都是為了完成某個(gè)任務(wù),但同一個(gè)事件可完成不同任務(wù),取決于您所編的代碼是怎樣的,而方法那么是固定的,任何時(shí)候調(diào)用都是完成同一個(gè)任務(wù),所以其中的代碼也不需要我們編了,F(xiàn)OXPRO系統(tǒng)已為我們編好我們也看不見,只需

20、在必要的時(shí)候調(diào)用即可。比方:文本框可以用以顯示文字,也可以輸入文字,假設(shè)一個(gè)表單上有三個(gè)文本框,那么我們打字的時(shí)候,字進(jìn)入哪個(gè)框呢?這就要看當(dāng)前的焦點(diǎn)在哪個(gè)框上,一般我們可以用鼠標(biāo)點(diǎn)一下所要的框,即將焦點(diǎn)放到了這個(gè)框上,有時(shí)我們會(huì)讓軟件自動(dòng)地將焦點(diǎn)放在某個(gè)框上,這時(shí)就要調(diào)用“設(shè)置焦點(diǎn)方法(setfocus),例如我們要把焦點(diǎn)放到第二個(gè)文本框上,調(diào)用的方法如下:text2.setfocus至于它是怎么將焦點(diǎn)放上去的,也就是說具體放的程序是怎么編的,我們不用知道,只要能到達(dá)的目的就行。當(dāng)然不但是文本框,其它的對(duì)象也都有此方法有些方法只有某些對(duì)象才有,調(diào)用的一般語法是:對(duì)象名稱.setfocus舉一

21、個(gè)實(shí)例來說明:當(dāng)我們的幸運(yùn)7游戲軟件啟動(dòng)后,我們會(huì)看到在第一個(gè)文本框text1中有一個(gè)光標(biāo)在閃動(dòng),也就是此時(shí)焦點(diǎn)在text1上,但我們并不需要在其中輸入文字,因此有個(gè)光標(biāo)在閃動(dòng)看起來很不舒服,此時(shí)需要的是按“開始按鈕,所以焦點(diǎn)應(yīng)在“開始按鈕上這樣按回車鍵也可以按下“開始按鈕,因此我們應(yīng)該在整個(gè)表單啟動(dòng)的時(shí)候?qū)⒔裹c(diǎn)設(shè)到此按鈕上。當(dāng)我們啟動(dòng)一個(gè)表單的時(shí)候,該表單的“激活事件(activate)就會(huì)發(fā)生,但由于一般情況下這一事件中沒有編入代碼,所以即使發(fā)生我們也感覺不出來。那么現(xiàn)在我們就要借用這個(gè)事件再去調(diào)用setfocus方法,便可到達(dá)我們目的。具體做法是這樣:翻開xy7工程管理器,找到xy7表單

22、,按“編輯進(jìn)入表單設(shè)計(jì)器,調(diào)出屬性窗口,看一下窗口上面的對(duì)象選擇窗中是否是“form1,如圖1,如不是那么選擇到“form1。 選擇“方法程序“全部也行,在第一行找到“activate event事件,如圖2, 雙擊此事件進(jìn)入程序編輯窗口,輸入下面代碼:thisform mand1.setfocus意思是“本表單 mand1對(duì)象.設(shè)置焦點(diǎn),command1即是“開始按鈕的名稱。輸入完程序后,存盤、退出。這樣一旦軟件開始運(yùn)行,表單被啟動(dòng)該表單的“激活事件發(fā)生其中的程序開始執(zhí)行將焦點(diǎn)設(shè)到command1即開始按鈕,焦點(diǎn)設(shè)在上面后會(huì)看到有一個(gè)虛線框住按鈕標(biāo)題,這時(shí)text1中就沒有光標(biāo)在閃動(dòng)了。還不

23、趕快試一下!第四課 常用的對(duì)象、屬性、事件、方法本課介紹一些常用的對(duì)象及其屬性、事件、方法,掌握了這些知識(shí)以后,便可編一些簡單實(shí)用的軟件了。對(duì)象(object): 表單(form) 【用于放置其它對(duì)象其它的對(duì)象也常常叫做“控件的界面,或叫窗口?!?按鈕(commandbutton) 【也叫“命令按鈕。專門用于起動(dòng)一個(gè)事件去操作一個(gè)動(dòng)作,比方關(guān)閉一個(gè)表單、將光標(biāo)移到另一個(gè)記錄、打印一份報(bào)告等等。用“標(biāo)題屬性可指定按鈕外表顯示的文字,以便區(qū)分該按鈕是用作什么用途的。您可以用鼠標(biāo)單擊來選擇一個(gè)按鈕,并激活其單擊事件以執(zhí)行一個(gè)動(dòng)作,至于具體執(zhí)行什么動(dòng)作,取決您為單擊事件編了什么樣的程序?!繕?biāo)簽(lab

24、el) 【標(biāo)簽是一個(gè)圖形控件,用于顯示文本信息,顯示的信息在程序運(yùn)行時(shí)不能直接修改。一個(gè)標(biāo)簽最多可容納256字符?!?文本框(text) 【用于顯示和編輯一個(gè)變量或者一個(gè)字段的值。所有Visual FoxPro標(biāo)準(zhǔn)的編輯功能,比方剪切、復(fù)制、粘貼,都可用于文本框。假設(shè)文本框編輯的是日期或日期時(shí)間格式的值,當(dāng)整個(gè)值被選擇后,您可以按“或“來增加或減少天數(shù)?!勘砀?grid)【表格是一種容器型對(duì)象,所謂容器型對(duì)象是指在此對(duì)象中還可有別的對(duì)象,表單也是容器型對(duì)象。表格用于按行和列顯示數(shù)據(jù),就類似于在瀏覽Browse窗口中所看到的,在其中包含有假設(shè)干列對(duì)象,而每個(gè)列對(duì)象又包含列標(biāo)題和文本框?qū)ο?,這里的

25、每個(gè)對(duì)象都有它們自己的屬性、事件、方法?!繉傩?property): 標(biāo)題(caption)【指定對(duì)象標(biāo)題所顯示的文本,主要用于指示該對(duì)象的用途。在程序設(shè)計(jì)和運(yùn)行時(shí)都可更改。語法:對(duì)象.Caption=cText設(shè)置其中的cText即為對(duì)象標(biāo)題設(shè)置的文本。備注:標(biāo)題屬性對(duì)于不同的對(duì)象其顯示是不同的:表單:標(biāo)題顯示在表單的標(biāo)題欄中,如圖1。 當(dāng)表單縮到最小,標(biāo)題文本顯示在該表單圖標(biāo)的旁邊,如圖2。 其它控件:有的標(biāo)題顯示在控件上面,有的顯示在其旁邊。當(dāng)您創(chuàng)立一個(gè)新的表單或控件,它的隱含標(biāo)題與它的隱含名稱屬性是一樣,但實(shí)際上是兩回事,當(dāng)您要指定一個(gè)對(duì)象時(shí)您必須用它的名稱,而不能用它的標(biāo)題。比方您要

26、在一個(gè)表單上創(chuàng)立一個(gè)退出按鈕,如果它是在表單上創(chuàng)立的第二個(gè)按鈕,那么它的隱含標(biāo)題很可能是command2,名稱也是同樣的,當(dāng)然您很可能馬上會(huì)將其標(biāo)題改為“退出,但其名稱仍是command2,如您要在程序中調(diào)用這個(gè)按鈕,必須用它的名稱來指定調(diào)用的是那個(gè)對(duì)象,例如:要用程序把焦點(diǎn)放在這按鈕上,程序應(yīng)這樣寫:command2.setfocus而不能寫成:退出.setfocus】左起始位(left)【設(shè)定對(duì)象的左邊起始位置。也就是該對(duì)象的左邊界與容納該對(duì)象的容器的左邊界的距離,比方一個(gè)表單中的按鈕,表單就是按鈕的容器,按鈕左邊界與表單左邊界的距離就是按鈕的左起始位置。在程序設(shè)計(jì)和運(yùn)行時(shí)都可更改。一個(gè)表

27、單的隱含容器為VFP主窗口。語法:對(duì)象.Left=nDist其中的nDist為代表左邊界的數(shù)值,使用時(shí)用一具體數(shù)值代入。備注:一般不需要在程序中用以上語句來設(shè)置對(duì)象的左邊界,在面向?qū)ο缶幊虝r(shí),一旦對(duì)象設(shè)置好,或者說用鼠標(biāo)拉好,其左邊界就設(shè)好了。當(dāng)我們用鼠標(biāo)改變其位置時(shí),其左邊界也會(huì)相應(yīng)變化。當(dāng)然如果我們要在程序運(yùn)行的過程中,改變某對(duì)象的左邊界,以到達(dá)改變對(duì)象位置的目的,就可用到上面的語句了。例如:我們要在程序中把按鈕command1的左邊界設(shè)為10,實(shí)現(xiàn)的語句為:command1.left=10此語句一旦運(yùn)行,command1按鈕就會(huì)移動(dòng)到其左邊界為10的地方?!可掀鹗嘉?top)【設(shè)定對(duì)象的

28、上邊起始位置。也就是該對(duì)象的上邊界與容納該對(duì)象的容器的上邊界的距離,比方一個(gè)表單中的按鈕,表單就是按鈕的容器,按鈕左邊界與表單上邊界的距離就是按鈕的上起始位置。在程序設(shè)計(jì)和運(yùn)行時(shí)都可更改。一個(gè)表單的隱含容器為VFP主窗口。語法:對(duì)象.Top=nValue其中的nValue為代表左邊界的數(shù)值,使用時(shí)用一具體數(shù)值代入。備注:一般不需要在程序中用以上語句來設(shè)置對(duì)象的上邊界,在面向?qū)ο缶幊虝r(shí),一旦對(duì)象設(shè)置好,或者說用鼠標(biāo)拉好,其上邊界就設(shè)好了。當(dāng)我們用鼠標(biāo)改變其位置時(shí),其上邊界也會(huì)相應(yīng)變化。當(dāng)然如果我們要在程序運(yùn)行的過程中,想改變某對(duì)象的上邊界,以到達(dá)改變對(duì)象位置的目的,就可用到上面的語句了。例如:我

29、們要在程序中把按鈕command1的上邊界設(shè)為10,實(shí)現(xiàn)的語句為:command1.top=10此語句一旦運(yùn)行,command1按鈕就會(huì)移動(dòng)到其上邊界為10的地方。常用到的對(duì)象】寬度(width)【設(shè)定對(duì)象的寬度。在程序設(shè)計(jì)和運(yùn)行時(shí)都可更改。語法:對(duì)象.Width=nWidthnWidth為指定寬度的數(shù)值。備注:一般不需要在程序中用以上語句來設(shè)置對(duì)象的寬度,在面向?qū)ο缶幊虝r(shí),一旦對(duì)象設(shè)置好,或者說用鼠標(biāo)拉好,其寬度就設(shè)好了。當(dāng)我們用鼠標(biāo)改變其大小時(shí),其寬度也會(huì)相應(yīng)變化。當(dāng)然如果我們要在程序運(yùn)行的過程中,想改變某對(duì)象的寬度,以到達(dá)改變對(duì)象大小的目的,就可用到上面的語句了。例如:我們要在程序中把按

30、鈕command1的寬度設(shè)為10,實(shí)現(xiàn)的語句為:command1.width=10此語句一旦運(yùn)行,command1按鈕的寬度就會(huì)為10了?!扛叨?hight)【設(shè)定對(duì)象的高度。在程序設(shè)計(jì)和運(yùn)行時(shí)都可更改。語法:對(duì)象.Height=nHeightnHeight為指定寬度的數(shù)值。備注:一般不需要在程序中用以上語句來設(shè)置對(duì)象的高度,在面向?qū)ο缶幊虝r(shí),一旦對(duì)象設(shè)置好,或者說用鼠標(biāo)拉好,其高度就設(shè)好了。當(dāng)我們用鼠標(biāo)改變其大小時(shí),其高度也會(huì)相應(yīng)變化。當(dāng)然如果我們要在程序運(yùn)行的過程中,想改變某對(duì)象的高度,以到達(dá)改變對(duì)象大小的目的,就可用到上面的語句了。例如:我們要在程序中把按鈕command1的高度設(shè)為10

31、,實(shí)現(xiàn)的語句為:command1.height=10此語句一旦運(yùn)行,command1按鈕的高度就會(huì)為10了。】控制源(controlsource)【指定與對(duì)象邦定的數(shù)據(jù)源。一般是指一個(gè)變量或數(shù)據(jù)庫字段,比方對(duì)于一個(gè)文本框來說,指定一個(gè)變量為其控制源,那么在文本框中輸入的數(shù)據(jù)就會(huì)存貯到這個(gè)變量中。在程序設(shè)計(jì)和運(yùn)行時(shí)都可更改。語法:對(duì)象.ControlSource=cName設(shè)置:cName 即為控制變量名,可以是一個(gè)變量,也可以是一個(gè)數(shù)據(jù)庫字段。備注:一旦某對(duì)象控制源屬性設(shè)置到了一字段或變量,該對(duì)象的“值屬性與控制源相同。一般情況下,我們不需要用上面的語句為對(duì)象設(shè)置控制源,而只需在面向?qū)ο缶幊虝r(shí)

32、,當(dāng)設(shè)好一對(duì)象后,在屬性窗口中找到contorlsource屬性,輸入相應(yīng)的變量或字段名即可。例如:在程序中要將文本框text1中所輸入的數(shù)據(jù)放在變量sj中,那么將text1的控制源設(shè)為sj,實(shí)現(xiàn)的語句為:text1.controlsource=sj】值(value)【指定控件當(dāng)前的狀態(tài)。比方一個(gè)文本框當(dāng)前的內(nèi)容是什么。在程序設(shè)計(jì)和運(yùn)行時(shí)都可更改。語法:控件.Value=nSetting設(shè)置:nSetting對(duì)于文本框來說即是在文本框中輸入的字符串或數(shù)值、日期、邏輯值等等。隱含的數(shù)據(jù)類型為字符型。備注:對(duì)于表格控件,其值只有在表格獲得焦點(diǎn)的時(shí)候才可更改。當(dāng)控件的控制源做了設(shè)置,那么它的值與控制

33、源的值相同。一般在我們的程序中都是用控制源來控制控件的值。】文本對(duì)齊(alignment)【指定控件文本的對(duì)齊方式。即左、中、右。在程序設(shè)計(jì)和運(yùn)行時(shí)都可更改。語法:控件.Alignment=nAlign設(shè)置:nAlign對(duì)于文本框來說,可作的設(shè)置如下:Setting Description0 左1 右2 中3 自動(dòng)隱含,即文本靠左,數(shù)值靠右?!棵Q(name)【指定對(duì)象被調(diào)用的名稱。在程序設(shè)計(jì)和運(yùn)行時(shí)都可更改。語法:對(duì)象.Name=cName設(shè)置:cName即為給對(duì)象指定的名稱文本。備注:對(duì)象隱含的名稱一般是對(duì)象的類型再加一個(gè)整數(shù),比方:創(chuàng)立的第一個(gè)表單就叫form1,在一個(gè)表單中創(chuàng)立的第三個(gè)

34、文本框就被叫做text3。當(dāng)然您可以修改為任何您所喜歡的名稱,但為了簡便起見我們一般都不改。名稱和標(biāo)題不同,雖然隱含時(shí)它們是一樣的,當(dāng)您要調(diào)用一個(gè)對(duì)象時(shí)必須用它的名稱,而不能用它的標(biāo)題(caption),參見標(biāo)題屬性。所以當(dāng)您改了一個(gè)對(duì)象的標(biāo)題時(shí),并不表示它的名稱也改了,它的名稱還是原來的,您可以在屬性窗口的name屬性中看到。如果一個(gè)對(duì)象是容器型對(duì)象其中包含有別的對(duì)象,而它又是最外一層的容器因?yàn)槿萜髦羞€可有容器,那么在程序中第一次調(diào)用它時(shí),應(yīng)將它附給一個(gè)變量,以后調(diào)用它時(shí),用這個(gè)變量名,而不用它自己的名稱。比方一般我們?cè)诔绦蛑械谝淮握{(diào)用一個(gè)表單往往是用類似如下的語句:do form xy7

35、name lucky這里的lucky就是xy7表單所附于的變量名,您可以用任何變量名,只要不與程序中的其它變量重名,當(dāng)然也可以用與表單名一樣的變量名我們常常是這樣,以后在調(diào)用這個(gè)表單時(shí)就用這個(gè)變量名,如把焦點(diǎn)設(shè)到這個(gè)表單中的command1按鈕,程序?yàn)椋簂ucky mand1.setfocus而不是:xy7 mand1.setfocus當(dāng)在一個(gè)對(duì)象內(nèi)部的事件程序中調(diào)用本對(duì)象時(shí),可用“this代替對(duì)象名稱,比方在幸運(yùn)7表單中,在按過開始按鈕后,我們想把這個(gè)按鈕的標(biāo)題設(shè)為“再開始,那么可在這個(gè)按鈕的click事件中加上如下語句:this.caption=再開始它等同于command1.captio

36、n=再開始,但當(dāng)這個(gè)按鈕的名稱改為“command3時(shí),這一句就不對(duì)了,必須做修改才能正確運(yùn)行,但上一句不用改,仍然可以用。如果這個(gè)對(duì)象是表單,那么調(diào)用它自己時(shí)不能用“this,而用“thisform代替名稱或名稱變量。】只讀(readonly)【確定使用者是否可以編輯控件。在程序設(shè)計(jì)和運(yùn)行時(shí)都可更改。語法:表單.控件.ReadOnly=lExpr設(shè)置:lExpr 可設(shè)置的值有:.t. 真,即控件不可編輯.f. 假,即控件可編輯備注:如果要讓一個(gè)件一開始就是指讀不可編輯的,可在程序設(shè)計(jì)時(shí)將其設(shè)為指讀,在屬性窗口中找到readonly屬性,將其設(shè)T真即可。如要在程序運(yùn)行時(shí),使一個(gè)控件變?yōu)橹缸x,就

37、可采用上面的語句,比方將xy7表單中的text1文本框設(shè)為指讀,程序?yàn)椋簒y7.text1.readonly=.t.注意,這里的xy7是啟動(dòng)表單時(shí)為該表單所指定的變量名。舉例:以我們?cè)诘诙n中的幸運(yùn)7程序?yàn)槔?,在程序啟?dòng)后,可以在上面三個(gè)文本框中輸入字符,但這是我們所不需要的,為了防止這個(gè)問題可以在設(shè)計(jì)程序時(shí),將三個(gè)文本框設(shè)成指讀,這樣就不能輸入字符了。不信您試試。】可見(visible)【設(shè)定一個(gè)控件是否可以看見。在程序設(shè)計(jì)和運(yùn)行時(shí)都可更改。語法:對(duì)象.Visible=lExpr設(shè)置:lExpr 可設(shè)置的值有:.t. 真,即可見.f. 假,即不可見備注:就如同我們?cè)谛疫\(yùn)7程序中對(duì)“輸、“贏兩

38、字的處理。】事件(event): 單擊(click)【當(dāng)一個(gè)對(duì)象被鼠標(biāo)左鍵點(diǎn)擊時(shí)發(fā)生此事件?!砍跏蓟?init)【當(dāng)一個(gè)對(duì)象被創(chuàng)立時(shí)此事件發(fā)生。舉例:在幸運(yùn)7程序中,我們也可以不屬性窗口中把“輸、“贏兩標(biāo)簽的可見屬性設(shè)為假,而在這兩個(gè)標(biāo)簽的init事件中加上如下語句:this.visible=.f.這樣當(dāng)兩標(biāo)簽形成時(shí),它們的init事件被激活,執(zhí)行上面語句,同樣可到達(dá)使兩標(biāo)簽看不見的效果。備注:容器中對(duì)象的init事件比容器的init事件早發(fā)生,這一點(diǎn)在程序編制過程中也是很有用的,籍此我們可以在容器的init事件對(duì)容器中的對(duì)象進(jìn)行訪問,比方還是上面那個(gè)例子,可以不在每個(gè)標(biāo)簽的init事件中寫入

39、程序,而只在表單的init事件中寫入如下語句即可:thisform.label1.visible=.f.thisform.label2.visible=.f.這樣可以到達(dá)同樣效果。而容器中各對(duì)象的init事件發(fā)生的先后順序,取決于編程時(shí)它們被添加到表單中的先后順序?!糠椒?methord): 設(shè)置焦點(diǎn)(setfocus)【將焦點(diǎn)放到控件上。語法:控件.setfocus備注:一旦一個(gè)控件獲得了焦點(diǎn),操作所做的輸入都是針對(duì)此控件。】刷新(refresh)【重新顯示對(duì)象,并把它們的各個(gè)值設(shè)為最新。語法:表單.對(duì)象.Refresh備注:一般說來,系統(tǒng)會(huì)自動(dòng)在需要的時(shí)候?yàn)閷?duì)象刷新,但并不總是有效,有時(shí)我

40、們會(huì)看到在程序執(zhí)行過程中改變了一個(gè)對(duì)象的某個(gè)值,但這個(gè)對(duì)象卻沒有任何反響,這時(shí)我們就調(diào)用一下刷新方法程序,來將這個(gè)對(duì)象刷新一下?!酷尫?release)【釋放一個(gè)表單,也就是關(guān)閉一個(gè)表閉。語法:表單.Release】第五課 常用編程命令及常用函數(shù)注:在語法中如用方括號(hào)“ 括起來的詞句,表示可以不用。命令 假設(shè)(if.endif)【根據(jù)一邏輯表達(dá)式的值,有條件的執(zhí)行一組命令。語法:IF 邏輯表達(dá)式 THEN 程序組1ELSE 程序組2ENDIF參數(shù):邏輯表達(dá)式代表一邏輯值,如果這邏輯值為真,系統(tǒng)執(zhí)行程序組1,否那么不執(zhí)行程序組1,如果有else及程序組2的話,那么執(zhí)行程序組2,如沒有那么什么也不

41、執(zhí)行,直接執(zhí)行endif后面的語句。備注:在if.endif之間還可以有if.endif,即該命令是可以嵌套的。then可以有也可以沒有,對(duì)程序沒有影響。else及程序組2可以有也可以沒有,但如果有的話,在邏輯表達(dá)式的值為假時(shí),程序組2將被執(zhí)行。if 與 endif 必須配對(duì)使用,即有一個(gè) if 必須有一個(gè) endif, 否那么程序會(huì)出錯(cuò)。舉例:例1:假設(shè)分?jǐn)?shù)字段的值大于等于90,那么讓等級(jí)字段的值為“優(yōu),并顯示該記錄。程序如下:if 分?jǐn)?shù)=90 replace 等級(jí) with 優(yōu) displayendif例2:在數(shù)據(jù)庫中可以把性別字段設(shè)為邏輯型,“真代表“男,“假代表“女,但顯示時(shí)不能顯示真

42、、假,否那么別人看不懂,而應(yīng)顯示男、女,因此我們?cè)O(shè)一變量xb,根據(jù)性別字段的具體值,將xb的值設(shè)為男或女,然后在需要的時(shí)候顯示xb的值即可。程序如下:if 性別 xb=男else xb=女endif其中第一句:if 性別,表示“假設(shè)性別為真的意思,不要寫成“if 性別=.t.。以上程序也可以寫成如下形式,效果相同:if .not. 性別 xb=女else xb=男endif即,假設(shè)性別不為真的話,xb的值就為女,否那么為男?!垦h(huán)(do while.enddo)【根據(jù)條件重復(fù)執(zhí)行一組程序。語法:DO WHILE lExpression Commands LOOP EXITENDDO參數(shù):lEx

43、pression 為一邏輯表達(dá)式,其值如果是“真,即執(zhí)行commands程序組,如果表達(dá)的值為“假,那么跳過該段程序組,執(zhí)行enddo后面的語句。Commands 當(dāng)表達(dá)式 lExpression 值為真時(shí)所要執(zhí)行的程序組。LOOP 此為 do while.enddo 命令的一個(gè)子句,它可以放在 commands 程序組中間的任何地方,當(dāng)程序一旦執(zhí)行到該子句時(shí),那么返回 do while 重新執(zhí)行。此子句根據(jù)需要可以有,也可以沒有。EXIT 與loop一樣是 do while.enddo 命令的一個(gè)子句,它可以放在 commands 程序組中間的任何地方,當(dāng)程序一旦執(zhí)行到該子句時(shí),那么跳出循環(huán)

44、,執(zhí)行enddo后面的語句。此子句根據(jù)需要可以有,也可以沒有。備注:程序一旦執(zhí)行到do while 語句,如果 lExpression 的值為真,那么執(zhí)行 commands 程序組,該程序組執(zhí)行完后,就到enddo語句,enddo會(huì)將程序返回 do while 再次驗(yàn)證 lExpression 是否為真,如仍是,那么又一次執(zhí)行 commands ,如此循環(huán)往復(fù),直到 lExpression 為假,或遇上 exit 語句。該語句可以嵌套,即循環(huán)中還可以有循環(huán)。do while 與 enddo 必須配對(duì)使用,即有一個(gè) do while 必須有一個(gè) enddo 否那么程序會(huì)出錯(cuò)。舉例:例1:在數(shù)據(jù)庫

45、中不斷將記錄指針往下移,直到數(shù)據(jù)庫結(jié)尾。程序如下:do while .not. eof() skipenddo例2:在上面的例子參加此功能,當(dāng)遇到性別字段為“女時(shí),跳出循環(huán)。程序如下:do while .not. eof() if 性別=女 exit endif skipenddo例3:不斷將記錄指針往下移,當(dāng)遇到數(shù)量字段的值大于等于600時(shí)退出循環(huán),如遇到值小于400的,將其值乘2,然后再檢驗(yàn)一次是否大于600,如是那么退出循環(huán)。程序如下:do while 數(shù)量600 if 數(shù)量400 replace 數(shù)量 with 數(shù)量*2 loop endif skipenddo】分支(do case.

46、endcase)【根據(jù)不同的條件執(zhí)行不同的程序組。語法:DO CASE CASE 邏輯表達(dá)式1 程序組1 CASE 邏輯表達(dá)式2 程序組2 . CASE 邏輯表達(dá)式n 程序組n OTHERWISE 程序組0ENDCASE參數(shù):CASE 邏輯表達(dá)式 程序組 . 當(dāng)程序執(zhí)行到 do case 時(shí),便檢驗(yàn)第一個(gè) case 的邏輯表達(dá)式邏輯表達(dá)式1是否為真,如不為真,接著檢驗(yàn)第二個(gè) case 的邏輯表達(dá)式,以此類推直到邏輯表達(dá)式n。當(dāng)檢測到第一個(gè)為真的邏輯表達(dá)式時(shí),便執(zhí)行跟隨在其后面的程序組,執(zhí)行完后跳過后面所有的 case ,接著執(zhí)行 endcase 后面的語句,也就是說即使后面還有為真的邏輯表達(dá)式

47、也不執(zhí)行了。如果所有 case 后面的邏輯表達(dá)式都為假,那么執(zhí)行 otherwise 后面的程序組如果有的話, otherwise 及其程序組是可以沒有的,如果沒有那么什么都不做,直接執(zhí)行 endcase 以后的程序備注:在do case 和 endcase 之間可以有任意多個(gè) case 。do case 和 endcase 必須配對(duì)使用,即有一個(gè) do case 必須有一個(gè) endcase ,否那么程序會(huì)出錯(cuò)。舉例:如果工資在200元以下,增加50%;300元以下,增加30%;500元以下,增加20%;其它增加10%。程序如下:do case case 工資=200 replace 工資 w

48、ith 工資*1.5 case 工資=300 replace 工資 with 工資*1.3 case 工資=500 replace 工資 with 工資*1.2 otherwise replace 工資 with 工資*1.1endcase在這里要注意一個(gè)問題,不能把300元的 case 放在200元之前,否那么一個(gè)100元的,按理應(yīng)加50%,但當(dāng)遇到小于300元的 case 時(shí),其邏輯表達(dá)式為真小于200元的肯定小于300元,因此就會(huì)執(zhí)行后面的程序,加30%,并且執(zhí)行完后,就不再執(zhí)行其它的 case 了,這樣就產(chǎn)生了錯(cuò)誤的結(jié)果,所以應(yīng)按從小到大的順序來排列?!抠x值(store.to)【將一個(gè)

49、數(shù)據(jù)賦給一個(gè)變量。語法:STORE 表達(dá)式 TO 變量名表參數(shù):表達(dá)式的值即為要賦給變量的數(shù)據(jù)。變量名表即為要被賦值的各變量。在這里可以是一個(gè)變量,也可以是多個(gè)變量,如果有多個(gè)變量,其間用“,逗號(hào)隔開。備注:如果是給一個(gè)變量賦值,該語句可寫成如下形式:變量名=表達(dá)式表達(dá)式可以是一個(gè)數(shù)值,也可以是一個(gè)算術(shù)式。舉例:例1:將3賦給ab、xyz、jfz三個(gè)變量,程序如下:store 3 to ab,xyz,jfz例2:將變量gz的值加100賦給yfgz。程序如下:yfgz=gz+100】調(diào)用表單(do form)【運(yùn)行一個(gè)由表單設(shè)計(jì)器設(shè)計(jì)的表單文件。該文件是經(jīng)編譯過的。語法:DO FORM 表單文件

50、名 NAME 變量名 LINKED參數(shù)表單文件名即是要運(yùn)行的由表單設(shè)計(jì)器設(shè)計(jì)的表單文件名稱。變量名為調(diào)用該表單所用的變量名稱,做為表單,不能直接用這的名稱去調(diào)用它,必須將其賦給一個(gè)變量,然后用這個(gè)變量來調(diào)用它。如果您不會(huì)在這個(gè)表單之外調(diào)用它,也可以不要這個(gè)變量。在程序中產(chǎn)生的所有變量在程序運(yùn)行結(jié)束后將被釋放,即這些變量不再存在,因此也就無法繼續(xù)調(diào)用這些變更,如果為了調(diào)試程序需要在程序運(yùn)行結(jié)束后在命令窗口中調(diào)用這個(gè)表單,必須加上 linked 子句。舉例:在程序中調(diào)用xy7表單,并將賦給一個(gè)變量lucky,程序如下:do form xy7 name lucky】調(diào)用子程序(do)【運(yùn)行一個(gè)VFP

51、程序。當(dāng)我們要在一個(gè)程序中調(diào)用另一個(gè)程序子程序時(shí)使用此命令。語法:DO 程序名參數(shù):程序名即為被調(diào)用的程序名稱。備注:如被調(diào)用的程序的擴(kuò)展名是“prg,調(diào)用時(shí)可不用帶擴(kuò)展名,否那么要帶上擴(kuò)展名。舉例:有一個(gè)程序,名稱為 xy7.prg,調(diào)用它的程序如下:do xy7】返回調(diào)用程序(return)【返回調(diào)用本程序該語句所在程序的程序。前面講過調(diào)用子程序的語句,從一個(gè)程序A調(diào)用另一個(gè)程序B后,系統(tǒng)便開始執(zhí)行B程序中的語句,到一定時(shí)候往往要從程序B返回程序A,便可使用該語句。語法:RETURN備注:程序A調(diào)用程序B,當(dāng)從B返回A后,系統(tǒng)接著執(zhí)行調(diào)用語句(do b)下面的一條語句。舉例:程序a.prg如下:do while .not. eof()if 工資100do bendifskipenddo程序b.prg如下:replace 工資 with 工資*1.5 &將工資增加50display &顯示出該記錄,這樣可以將所有增加了工資的記錄顯示出來return首先執(zhí)行程序a.prg,當(dāng)程序執(zhí)行到 do b 語句時(shí),便轉(zhuǎn)去執(zhí)行程序 b.prg ,在程序 b 中執(zhí)行到 return語句時(shí),又返回程序 a ,并接著執(zhí)行 do b 的下一條語句 endif 。】啟動(dòng)事件處理(read events)【啟動(dòng)VFP的事件處理程序。語法:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論