現在,我們回億一下前面所做的動作:首先,創建了一個窗體(Form),設置它的各種屬性(給屬性賦値),然後,在窗體中創建一個控件,再給它的屬性賦値。這是一系列分散、不連貫的動作,有時,可能遺漏,有時忘了哪一個屬性是否已經設置過,爲了找到某個屬性,需要到處翻查,查的時間長了,可能忘了自己原先想幹什麽。其實,這些動作,就相當於我們在Command窗口中手動操作數據表,鍵入一條指令,看某些結果,又再鍵入下一條指令,有些指令是單獨就可以達到目的的,但有些目的需要多條指令綜合才可以達到,爲了組織這些有順序的指令,需要我們時刻記住原先想幹什麽、現在幹到哪了、還需要什麽,一旦中間發生差錯,一系列的指令極可能要重新鍵入一次。正是爲了解決這種麻煩,“編程”的概念就出來了。要把一堆指令連貫地按邏輯組織執行,可以把這些指令寫好在一起,然後讓計算機依次執行,所謂“程序”,就是這樣的按部就班序列,就如去飯店喫飯,先付後食或先食後付,這麽一個規定流程,就是程序,我們常説“按程序做事”,也是這個意思。
其實,1樓的動作,用程序寫,就是如下這樣:
![](zzz/editor/img/code.gif)
程序代码:
oMainForm = CREATEOBJECT("Form") && 創建一個變量名爲oMainForm的對象,這個對象是Form控件,這是New Form手動後VFP IDE替我們寫的指令
WITH oMainForm && WITH體,是指下面的操作默認對象是oMainForm
.Caption = "測試" && 給oMainForm.Caption賦値,在屬性框填寫每一個屬性,都是這麽一條賦値語句
.AddObject("Label1", "Label") && 在窗體上添加一個Label控件,命名爲Label1,此時它是不可見的
WITH .Label1 && 對oMainForm.Label1操作
.Caption = "Hello, world!" && 給oMainForm.Label1.Caption賦値
.Visible = .T. && 給oMainForm.Label1.Visible賦値,此時對象從不可見變爲可見
ENDWITH && 結束對oMainForm.Label1的WITH範圍
.Show(1) && 窗體內所有控件添加和屬性設置完畢後,讓窗體可見,執行oMainForm.Show方法
ENDWITH && 結束對oMainForm的WITH範圍
以上指令序列,VFP將會依次執行,每執行一條,效果馬上見效,因此,調整每一句的順序,都會影嚮效果,當計算機執行慢動作的時候,就可以看到這樣的區別。現在,我們瀏覽這一套指令序列,就很清楚程序在幹什麽,先做什麽後做什麽,當屏蔽(用*註釋)掉一行時,會怎樣,要在什麽時機做什麽事,都可以看得很清楚。比如,在窗體上添加控件,可以不讓它可見,而要讓它在適當的時候可見,也是邏輯上的需求,這都是可控的。寫程序,就必須能够精細控制計算機的行爲,而不是它到底怎麽運作的都不知道,那樣,計算機就如不聽話的孩子,頭痛就難免了。
[此贴子已经被作者于2016-2-4 14:38编辑过]