VisualFoxPro程序設(shè)計(jì)幻燈片_第1頁(yè)
VisualFoxPro程序設(shè)計(jì)幻燈片_第2頁(yè)
VisualFoxPro程序設(shè)計(jì)幻燈片_第3頁(yè)
VisualFoxPro程序設(shè)計(jì)幻燈片_第4頁(yè)
VisualFoxPro程序設(shè)計(jì)幻燈片_第5頁(yè)
已閱讀5頁(yè),還剩77頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

VisualFoxPro程序設(shè)計(jì)教程第6章表單

表單是VFP創(chuàng)建應(yīng)用程序與應(yīng)用程序界面的重要途徑之一,它將可視化操作與面向?qū)ο蟮某绦蛟O(shè)計(jì)思想有機(jī)結(jié)合在一起。表單設(shè)計(jì)器是設(shè)計(jì)表單的工具,它提供了設(shè)計(jì)應(yīng)用程序界面的各種控件、相應(yīng)屬性、事件。它運(yùn)用了面向?qū)ο蟮某绦蛟O(shè)計(jì)和事件驅(qū)動(dòng)機(jī)制,使開發(fā)者能直觀,方便,快捷的完成應(yīng)用程序的設(shè)計(jì)與界面設(shè)計(jì)的開發(fā)工作。6.1面向?qū)ο蟪绦蛟O(shè)計(jì) 面向?qū)ο蟮某绦蛟O(shè)計(jì)思想是將事物的共性,本質(zhì)內(nèi)容抽象出來(lái)封裝成類。VFP又將軟件開發(fā)常用的功能抽象封裝成標(biāo)準(zhǔn)類,開發(fā)者用類定義所需對(duì)象,通過(guò)對(duì)對(duì)象的屬性設(shè)置,對(duì)事件的編程完成程序設(shè)計(jì),VFP還提供了自定義類及面向?qū)ο蟮钠渌暾麢C(jī)制與功能。6.1.1對(duì)象與屬性1、對(duì)象 對(duì)象是類的實(shí)例化,是客觀存在的具體事物,VFP標(biāo)準(zhǔn)類中有表單類,控件類等。具體的一個(gè)表單就是表單對(duì)象。2、屬性 屬性是描述對(duì)象的靜態(tài)特征。如表單的顏色,標(biāo)題,名稱等。常用的表單屬性如表6.1所示。表6.1常用表單屬性屬性用途默認(rèn)值A(chǔ)utoCenter初始化時(shí)是否讓表單自動(dòng)在vfp窗口中居中.F.AlwaysOnTop表單是否總是處于其他窗口之上.F.BackColor決定表單窗口的顏色255,255,255BorderStyle指定表單邊框風(fēng)格:0-無(wú)邊界,1-單線框,2-對(duì)話框,3-系統(tǒng)(可調(diào))3Caption指定表單顯示的標(biāo)題文本Form1Closable是否可以通過(guò)單擊關(guān)閉按鈕或雙擊控制菜單框來(lái)關(guān)閉表單.T.DataSession指定表單里的表是在缺省的全局能訪問(wèn)的工作區(qū)打開(設(shè)置為1),還是在表單自己的私有工作區(qū)打開(設(shè)置為2)1MaxButton表單是否有最大化按鈕.T.MinButton表單是否有最小化按鈕.T.Movable表單是否能移動(dòng).T.Name指定表單名Form1Scrollbar指定滾動(dòng)條類型:0-無(wú),1-水平,2-垂直,3-水平垂直0TitleBar控制表單是否有標(biāo)題欄:0-無(wú),1-有1WindowState表單狀態(tài):0-正常,1-最小化,2-最大化0WindowType指定表單是模式表單(設(shè)置為1),或非模式表單(設(shè)置為0)06.1.2事件與方法

1、事件:描述對(duì)象的動(dòng)態(tài)行為,它是由系統(tǒng)預(yù)先定義好的,由用戶或系統(tǒng)發(fā)出動(dòng)作,用對(duì)象來(lái)識(shí)別,用戶可編程對(duì)此進(jìn)行響應(yīng)。表6.2所示是表單設(shè)計(jì)器提供的常用事件。事件觸發(fā)事件觸發(fā)Load創(chuàng)建對(duì)象前RightClick用右鍵單擊對(duì)象時(shí)Init創(chuàng)建對(duì)象時(shí)KeyPress按下并釋放鍵盤時(shí)Activate對(duì)象激活時(shí)LostFocus對(duì)象失去焦點(diǎn)時(shí)GetFocus對(duì)象獲得焦點(diǎn)時(shí)Unload釋放對(duì)象時(shí)Click用左鍵單擊對(duì)象時(shí)Destry釋放對(duì)象時(shí)在Unload前觸發(fā)DblClick用左鍵雙擊對(duì)象時(shí)Error對(duì)象方法或文件代碼產(chǎn)生錯(cuò)誤時(shí)MouseUp釋放鼠標(biāo)鍵時(shí)Resize調(diào)整對(duì)象大小時(shí)MouseDown按鼠標(biāo)鍵時(shí)MouseMove在對(duì)象上移動(dòng)鼠標(biāo)時(shí)2、方法:與對(duì)象相關(guān)的過(guò)程,是對(duì)象能執(zhí)行的操作。方法分為兩種:一種為內(nèi)部方法,另一種為用戶自定義方法。內(nèi)部方法是VFP預(yù)先定義好的方法,供用戶使用或修改后使用。表6.3給出常用的方法。表6.3常用方法方法含義Release將表單從內(nèi)存中釋放Refresh刷新表單或控件Show顯示表單Hide隱藏表單Cls清除表單內(nèi)容SetFocus使控件獲得焦點(diǎn)3、對(duì)象的引用規(guī)則(1)引用形式對(duì)象對(duì)屬性、文件、方法的引用是用點(diǎn)“.”運(yùn)算符。形式:對(duì)象.屬性|方法|事件說(shuō)明:對(duì)象若有包含與被包含關(guān)系,可以從外層用“.”引用到內(nèi)層對(duì)象。如在后面要介紹的命令按鈕Command1,對(duì)它的Caption屬性的引用可以寫成:ThisForm.Command1.Caption=“確定”,這個(gè)意思是設(shè)置當(dāng)前表單中的Command1按鈕的Caption屬性為確定。ThisForm代表當(dāng)前表單。(2)對(duì)象在引用中常使用的關(guān)鍵字如表6.4所示。關(guān)鍵字含義例子This當(dāng)前對(duì)象This.CaptionThisForm當(dāng)前表單ThisForm.CaptionThisFormSet當(dāng)前表單集ThisFormSet.Form1.Command1.caption(3)容器類 在表單中有包含與被包含關(guān)系的對(duì)象,能包含其他對(duì)象的對(duì)象稱為容器對(duì)象,容器對(duì)象的類稱為容器類,在VFP中常用的容器類如下表所示。容器包含的對(duì)象表單集表單,工具欄表單任意控件,頁(yè)框,Container對(duì)象,命令組,選項(xiàng)組,表格等對(duì)象表格列列標(biāo)頭和除表單集、表單、工具欄、定時(shí)器及其他列之外的任意對(duì)象頁(yè)框頁(yè)命令組命令按鈕選項(xiàng)組選項(xiàng)按鈕Container任意控件及頁(yè)框,命令組,選項(xiàng)組,表格等對(duì)象頁(yè)任意空間及其Container對(duì)象,命令組,選項(xiàng)組,表格等對(duì)象6.2用表單向?qū)гO(shè)計(jì)表單

表單向?qū)峭ㄟ^(guò)與用戶人機(jī)交互向?qū)В瓿蓪?duì)表進(jìn)行瀏覽,編輯等基本操作界面的自動(dòng)生成。表單向?qū)閱伪斫⒌谋韱畏Q單表表單,為多表建立的表單稱多表表單。6.2.1建立單表表單

6.2.2建立多表表單1、建立表單2、執(zhí)行表單3、編輯表單6.3表單設(shè)計(jì)器 用表單向?qū)гO(shè)計(jì)表單,固然簡(jiǎn)單方便又不需要編寫代碼,但表單向?qū)гO(shè)計(jì)出的表單是有一定的固定模式,功能也有限。如果想設(shè)計(jì)無(wú)固定模式,多功能的表單,表單向?qū)菬o(wú)法實(shí)現(xiàn)的。VFP提供了表單設(shè)計(jì)器這個(gè)面向?qū)ο缶幊痰目梢暬ぞ?,用以滿足開發(fā)者設(shè)計(jì)風(fēng)格各異,功能齊全的表單。6.3.1表單設(shè)計(jì)器的環(huán)境1、打開表單設(shè)計(jì)器(1)用界面方式打開(2)用命令方式打開格式:MODIFYFORM[<表單名>|?]功能:打開表單設(shè)計(jì)器,創(chuàng)建或修改由表單名指定的表單。說(shuō)明:無(wú)選項(xiàng)或選?,將出現(xiàn)打開對(duì)話框,選一個(gè)表單或輸入一個(gè)表單名,輸入的表單名如果不存在則創(chuàng)建新的表單,如果存在則對(duì)原表單進(jìn)行修改。2、表單設(shè)計(jì)器環(huán)境(1)表單設(shè)計(jì)器工具欄

1)設(shè)置Tab鍵次序

2)數(shù)據(jù)環(huán)境

3)屬性窗口

4)代碼窗口

5)表單控件工具欄

6)調(diào)色板工具欄

7)布局工具欄

8)表單生成器

9)自動(dòng)格式例6.1設(shè)計(jì)表單。當(dāng)單擊表單上的文字“歡迎新同學(xué)”時(shí)文字變?yōu)椤皩W(xué)習(xí)要勤奮”,再雙擊就又恢復(fù)成以前的文字。單擊退出按鈕釋放表單。

6.3.2控件的操作與布局1、控件操作(1)在表單中放置控件(2)控件在表單中的復(fù)制與粘貼(3)調(diào)整大?。?)刪除控件(5)在表單中放置多個(gè)同類的控件2、控件的布局6.3.3數(shù)據(jù)環(huán)境 數(shù)據(jù)環(huán)境要在表單打開的情況下使用,當(dāng)表單關(guān)閉或釋放時(shí)它就關(guān)閉。

1、打開數(shù)據(jù)環(huán)境設(shè)計(jì)器

2、向數(shù)據(jù)環(huán)境設(shè)計(jì)器中添加表或視圖

3、數(shù)據(jù)環(huán)境中關(guān)系的設(shè)置

4、從數(shù)據(jù)環(huán)境設(shè)計(jì)器中移去表或視圖

5、向表單中添加字段例6.2設(shè)計(jì)一個(gè)表單,它可以對(duì)表進(jìn)行瀏覽、編輯、并可以釋放表單(即退出),界面如下圖所示6.3.4設(shè)置屬性與編輯代碼1、設(shè)置屬性(1)在屬性窗口的對(duì)象下拉列表框中選要設(shè)置屬性的對(duì)象(2)在屬性列表框中找到要設(shè)置的屬性并選中該屬性(3)在屬性設(shè)置框中輸入具體設(shè)置的屬性值1、編輯代碼(1)打開代碼窗口的方法

1)單擊表單設(shè)計(jì)器工具欄中的代碼窗口按鈕

2)雙擊表單工作區(qū)任意位置(2)在對(duì)象下拉列表框中選要編輯代碼的對(duì)象(3)在過(guò)程下拉列表框中選要編輯的代碼對(duì)象的事件或方法(4)在代碼編輯區(qū)中輸入相應(yīng)的代碼(5)關(guān)閉代碼編輯窗口,有兩種方法;

1)單擊表單設(shè)計(jì)器工具欄中的代碼窗口

2)單擊代碼窗口中的關(guān)閉按鈕6.3.5表單的修改與運(yùn)行1、表單的修改(1)打開表單設(shè)計(jì)器(2)對(duì)表單進(jìn)行修改

1)若對(duì)表單中已有控件對(duì)象修改,方法與設(shè)置屬性和編輯代碼相同。

2)如果在表單中創(chuàng)建新的控件對(duì)象,可在表單控件工具欄中選中控件放到表單中,然后對(duì)該對(duì)象進(jìn)行屬性設(shè)置和代碼編輯。

3)若要?jiǎng)h除表單中的控件,選中該控件按Del鍵。2、表單的運(yùn)行 格式:DOFORM<表單名>

功能:執(zhí)行由表單名指定的表單。6.4常用表單控件

6.4.1標(biāo)簽控件

標(biāo)簽控件屬于輸出類控件,用于顯示文本。它的常用屬性如表6.6所示。屬性用途默認(rèn)值Caption標(biāo)題用于顯示標(biāo)題文本Label1Autosize是否隨標(biāo)題文本大小調(diào)整.F.Alignment指定標(biāo)題文本控件中顯示的對(duì)齊方式:0左對(duì)齊,1右對(duì)齊,2中央對(duì)齊0BorderStyle標(biāo)簽是否透明:0為透明,1為不透明1ForeColor設(shè)置標(biāo)題文本顏色,0,0,0為黑色,255,255,255為白色0,0,0WordWrap標(biāo)題文本是否換行,.t.換行,.f.不換行.F.FontName設(shè)置標(biāo)題文本字體類型宋體FontSize標(biāo)題文本字體大小9例6.3計(jì)算1+2+3…+100的和6.4.2命令按鈕 命令按鈕用來(lái)觸發(fā)事件,完成特定的功能,常用屬性如表6.7所示。屬性用途默認(rèn)值Caption標(biāo)題Command1Enabled按鈕是否有效:.t.有效,.f.無(wú)效.T.Default是否為默認(rèn)按鈕,.t.是,.f.不是.T.Cancel是否是取消按鈕,.t.是,.f.不是.F.Visual按鈕是否可見(jiàn),.t.可見(jiàn),.f.不可見(jiàn).T.Picture設(shè)置圖形文件,使按鈕為圖形按鈕(無(wú))例6.4計(jì)算10!6.4.3命令組1、常用屬性命令組是容器控件,常用屬性如圖6.8所示。2、命令組生成器3、編輯命令組屬性用途默認(rèn)值ButtonCount設(shè)置命令組中命令按鈕的數(shù)目2Buttons用于存取命令組中各按鈕的數(shù)組0Value指定命令當(dāng)前的狀態(tài),當(dāng)屬性值為數(shù)值型時(shí),若為N表示第N個(gè)按鈕被選中。當(dāng)屬性值為字符型時(shí),若為字符型值C,表示命令組中Caption值為C的命令按鈕被選中1例6.5將6.2題用命令組做6.4.4文本框控件

文本框控件是基本控件,可以輸入,編輯數(shù)據(jù)。它可以處理除備份字段類型的數(shù)據(jù),一般包含一行數(shù)據(jù),在接受字符型數(shù)據(jù)時(shí),最多255個(gè)字符。

表6.9文本框常用屬性屬性用途默認(rèn)值ControlSource指定文本框的數(shù)據(jù)源,數(shù)據(jù)源可為字段或內(nèi)存變量(無(wú))Value指定文本框的值(無(wú))PasswordChar指定文本框的占位符,即當(dāng)向文本框輸入數(shù)據(jù)時(shí)不顯示真實(shí)的數(shù)據(jù)而顯示占位符(無(wú))InputMask用來(lái)指定數(shù)據(jù)的輸入格式和顯示方式,屬性值為一個(gè)字符串,字符串由掩碼組成(無(wú))例6.6求n!6.4.5編輯文本框 編輯框可用于輸入、顯示、編輯數(shù)據(jù)。它只能編輯字符型數(shù)據(jù),可編輯長(zhǎng)的字符型字段數(shù)據(jù),備注字段數(shù)據(jù),字符型內(nèi)存變量數(shù)據(jù),它可以編輯單行與多行數(shù)據(jù)。它最多能接受2147483647個(gè)字符。它的常用屬性如表6.10所示。屬性用途默認(rèn)值Value用來(lái)指定控件的狀態(tài)(無(wú))Readonly是否為只讀,.T.為只讀,.F.可編輯.F.Scrollbar是否有滾動(dòng)條,0無(wú),2垂直滾動(dòng)條2Selstart返回用戶在編輯框中所選文本的起始位置,取值范圍:0~編輯框中字符總數(shù)0Sellength返回用戶在文本輸入?yún)^(qū)中選定的字符數(shù)目,或指定要選定的數(shù)目。0Seltext返回選定的文本,若無(wú)選定文本,返回空串0Hideselection使用焦點(diǎn)時(shí)是否隱藏選定標(biāo)記,.T.隱藏,.F.不隱藏.T.例6.7設(shè)計(jì)一個(gè)表單,完成下圖所示功能例6.8表單如圖6.35所示6.4.6復(fù)選框控件 用于在軟件中提供給用戶一種或多種選擇,以便滿足用戶的要求。復(fù)選框是一個(gè)邏輯框,它只有兩種狀態(tài)值:一種為.T.,表示選上;一種為.F.,表示沒(méi)選上。屬性用途默認(rèn)值Caption方框右側(cè)的文本Checkbox1Value值0或.F.表示未選中,1表示被選中,2或null表示不確定0或.F.Controlsource數(shù)據(jù)源(無(wú))例6.9設(shè)計(jì)一個(gè)程序界面如下圖所示,對(duì)人的能力測(cè)試。若選選1、3項(xiàng),就顯示“您是一個(gè)全面發(fā)展的人!”,否則,顯示“您要繼續(xù)努力”例6.10統(tǒng)計(jì)學(xué)生人數(shù)6.4.7選項(xiàng)組控件 它是一個(gè)容器控件,包含多個(gè)選項(xiàng)按鈕,用于在多種功能或多種條件下,用戶只能選擇其中的一個(gè)功能或條件。選項(xiàng)組控件有生成器,通過(guò)生成器對(duì)各按鈕屬性設(shè)置。常用屬性如下表所示。Buttoncount指定選項(xiàng)組中按鈕數(shù)目2Value若值為數(shù)值型n,表示第n個(gè)按鈕被選中,若為字符型c,表示Caption屬性值為c的按鈕被選中1Controlsource指定數(shù)據(jù)源(無(wú))Buttons存取選項(xiàng)組中每個(gè)按鈕的數(shù)組0例6.11統(tǒng)計(jì)學(xué)生成績(jī)表中課程的平均分

例6.12完成如下圖所示的表單,在text1中輸入x,能選擇計(jì)算出對(duì)應(yīng)y值6.4.8列表框控件 列表框是用于顯示項(xiàng)目的列表,用戶可以在列表框中選擇一項(xiàng)或多項(xiàng)。列表框也有生成器。打開方法選中控件的快捷菜單中——生成器即可。

1、列表框常用屬性如下表所示:屬性用途默認(rèn)值Value返回列表框中被選擇的項(xiàng)目(無(wú))ListCount指定列表框中項(xiàng)的數(shù)組1ColumnCount指定列數(shù)0ControlSource指定數(shù)據(jù)源(無(wú))RowSourceType0:(無(wú))在程序中用additem向列表框中添加項(xiàng)目1:值,用手工指定項(xiàng)目,如rowsource=“aaa,bbb,ccc”2:別名,將表中字段作為項(xiàng)目,由columncount指定字段數(shù)目3:SQL語(yǔ)句,將select查詢結(jié)果作為項(xiàng)目4:查詢,將查詢結(jié)果作為項(xiàng)目5:數(shù)組,將數(shù)組內(nèi)容作為項(xiàng)目6:字段,將表中字段作為項(xiàng)目7:文件,將文件作為項(xiàng)目8:結(jié)構(gòu),將表結(jié)構(gòu)作為項(xiàng)目9:彈出式菜單,將彈出式菜單作為項(xiàng)目02、常用方法方法用途Addlistitem在rowsourcetype為0時(shí)為列表框添加項(xiàng)目,形式addlistitem(項(xiàng)目值,行,列)Removeitem當(dāng)rowsourcetype為0時(shí),從列表框中刪除一項(xiàng)Clear清除表中各項(xiàng)Requery當(dāng)rowsource值改變時(shí),更新列表例6.13設(shè)計(jì)表單,單擊“計(jì)算”,可計(jì)算出I+I*I+I*I*I的值,I取值為1~100例6.14在list1中顯示學(xué)生表的姓名字段,當(dāng)選定一個(gè)學(xué)生姓名時(shí)右側(cè)將顯示該學(xué)生信息6.4.9組合框 組合框是一種列表框,有兩種形式:一種是下拉式列表框與列表框一樣,另一種為下拉式組合框。下拉式組合框可以在列表框中選項(xiàng),也可以輸入一個(gè)值。組合框所常用的屬性與方法與列表框基本相同,但組合框沒(méi)有多選擇屬性,即沒(méi)有MultiSelect屬性。它有一個(gè)重要屬性就是style,用途如下表所示:屬性值用途0下拉組合框,可在列表中選項(xiàng),也可輸入,是默認(rèn)值1下拉式列表框例6.15設(shè)計(jì)一個(gè)用戶登錄界面6.4.10表格 表格是一種容器對(duì)象,它是按行列顯示數(shù)據(jù),外觀與瀏覽窗口相似。常用屬性如下表所示。屬性用途默認(rèn)值ColumnCount指定表格列數(shù)-1LinkMaster指定表格中顯示子表的父表名(無(wú))RecordSourceType0:表。數(shù)據(jù)來(lái)源于由RecordSource指定的表,該表能自動(dòng)打開1:別名。數(shù)據(jù)來(lái)源于已經(jīng)打開的表,由RecordSource指定該表別名3:查詢。數(shù)據(jù)來(lái)源于查詢,由RecordSource指定一個(gè)查詢文件4:SQL語(yǔ)句。數(shù)據(jù)來(lái)源于SQL語(yǔ)句,由RecordSource指定一條SQL語(yǔ)句1例6.16在表格中選一行時(shí)左側(cè)顯示該行記錄的全部信息6.4.11頁(yè)框

頁(yè)框是一種容器對(duì)象,頁(yè)框中包含頁(yè)面即頁(yè),而頁(yè)中又可以包含其它控件。其實(shí)頁(yè)框就是選項(xiàng)卡對(duì)話框。頁(yè)框?qū)Ρ韱蔚挠邢蘅臻g進(jìn)行了擴(kuò)展。常用屬性如下表。屬性用途默認(rèn)值PageCount指定頁(yè)框中包含頁(yè)的數(shù)量,取值范圍:0~992Pages用于存取頁(yè)對(duì)象的數(shù)組0Tabs指定頁(yè)框中是否顯示頁(yè)標(biāo)簽框,.T.為有頁(yè)標(biāo)簽欄,.F.為沒(méi)有.T.TabStretch當(dāng)頁(yè)標(biāo)題文本很長(zhǎng)時(shí),確定是否為多行顯示,0為多行顯示,1為單行顯示多余的截去1ActivePage用來(lái)返回或指定激活頁(yè)號(hào),如PageFrame1.ActivePage=3將第3頁(yè)激活,如x=PageFrame1.activePage返回激活頁(yè)號(hào)賦給x1TabStyle頁(yè)框中頁(yè)是否調(diào)整。0調(diào)整每個(gè)頁(yè)寬度來(lái)容納整個(gè)標(biāo)題,1不調(diào)整每個(gè)頁(yè)寬度來(lái)容納頁(yè)標(biāo)題0例6.17按下圖所示設(shè)計(jì)表單6.4.12計(jì)時(shí)器與微調(diào)器1、計(jì)時(shí)器 計(jì)時(shí)器是用于在程序中按一定時(shí)間間隔觸發(fā)某一事件,它的時(shí)間是由系統(tǒng)時(shí)鐘控制的,它在執(zhí)行時(shí)是不可見(jiàn)的。(1)常用屬性屬性用途默認(rèn)值Interval設(shè)置計(jì)時(shí)器Timers事件之間的時(shí)間間隔,以ms為單位0Enabled計(jì)時(shí)器是否可用,.T.為可用,.F.不可用.T.(2)常用事件

Timer事件為計(jì)時(shí)器常用事件,當(dāng)經(jīng)過(guò)由Interval屬性指定的毫秒數(shù)時(shí)觸發(fā),一般是在此事件中編制周期性的動(dòng)作執(zhí)行程序。例6.18表單如下圖所示,要求使用Timer控件,Interval設(shè)為1000,“歡迎使用”在1000ms間與系統(tǒng)時(shí)間交換顯示例6.19在例6.18的基礎(chǔ)上讓文字由右向左移動(dòng)2、微調(diào)(spinner) 該控件用于實(shí)現(xiàn)用戶在一定范圍內(nèi)輸入數(shù)值。用戶通過(guò)單擊微調(diào)的上下箭頭改變數(shù)值,也可以直接在微調(diào)中輸入數(shù)值。屬性用途默認(rèn)值Value當(dāng)前值0KeyBoardHighValue允許由鍵盤輸入的最大值2147483647KeyBoardLowValue允許由鍵盤輸入的最小值-2147483647SpinnerHightValue單擊箭頭按鈕的最大值2147483647SpinnerLowValue單擊箭頭按鈕的最小值-2147483647Increment指定微調(diào)的增減步長(zhǎng)1.00ControlSource指定綁定數(shù)據(jù)源,形式:對(duì)象.ControlSource=cname,cname為變量或字段(無(wú))例6.20用微調(diào)輸入x值,計(jì)算x*x6.4.13圖像、形狀、線條1、圖像(Image) 用于顯示圖片。常用屬性如下圖。屬性用途默認(rèn)值Picture要顯示的圖片所在的路徑(無(wú))BorderStyle是否有邊框,0為無(wú),1為固定單線0BackStyle圖像的背景是否透明,0為透明,1為不透明1Stretch0—剪裁,超出控件范圍部分不顯示。1—等比填充,保證圖像原有比例,在控件內(nèi)盡可能大的顯示圖像。2—變比填充,將圖像調(diào)整到控件的高度,寬度相匹配0例6.21計(jì)算兩數(shù)之積,用圖像修飾表單例6.22交替顯示兩張圖片2、形狀(shape) 該控件用來(lái)畫圓、矩形、橢圓。常用屬性如下表。屬性用途默認(rèn)值Curature指定曲率,0為矩形,99為圓或橢圓,(0,99)為圓角矩形0Width指定矩形寬度Height指定矩形高度FillStyle指定填充方式:0為實(shí)線1為透明,即無(wú)填充2為水平線3為垂直線4為向上對(duì)角線5為向下對(duì)角線6為十字線7為對(duì)角交叉線1例6.23表單如下圖所示。Spinner1用于調(diào)整形狀,曲率取值0-99,步長(zhǎng)為10。Spinner2用于填充方式,取值0-7,步長(zhǎng)為1。Spinner3用于調(diào)紅色,取值0-255,Spinner4用于調(diào)綠色,取值0-255,Spinner5用于調(diào)藍(lán)色,取值0-2553、線條(Line) 該控件畫直線。常用屬性如下表。屬性用途默認(rèn)值Height指定線條對(duì)角線的高度。若為0,水平線Width指定線條對(duì)角線的寬度。若為0,垂直線LineSlant指定線條傾斜方向例6.24設(shè)計(jì)表單如下圖所示,Spinner1與Spinner2的取值范圍為0-250,步長(zhǎng)為106.4.14容器(container) 容器控件是可以包含其它對(duì)象的控件。它的封裝性好,使用它可以將一些對(duì)象組合在一起,統(tǒng)一管理。屬性用途默認(rèn)值BackStyle設(shè)置容器是否透明。1不透明,0透明1SpecialEffect設(shè)置容器樣式。0-凸起,1-凹下,2-平面2例6.25用容器控件實(shí)現(xiàn)計(jì)算兩數(shù)之和6.5自定義屬性與方法

VFP允許用戶定義表單或表單集的屬性和方法。自定義屬性和方法屬于整個(gè)表單對(duì)象。因此在表單中始終是有效的。用戶自定義屬性相當(dāng)于變量,方法相當(dāng)于過(guò)程。自定義屬性與方法定義后與控件的其它屬性和方法一樣使用。6.5.1自定義屬性 自定義屬性分為一般屬性和數(shù)組屬性。1、自定義屬性

(1)建立自定義屬性

(2)編輯自定義屬性例6.26設(shè)計(jì)一個(gè)表單如下圖所示,要求每隔1000ms歡迎字幕和系統(tǒng)時(shí)間交替變化,單擊變化的文本將結(jié)束執(zhí)行2、自定義數(shù)組屬性 定義數(shù)組屬性的方法與定義一般屬性是一樣的,只是在新建屬性對(duì)話框中在名稱文本框內(nèi)輸入名時(shí)要將數(shù)組的最大下標(biāo)輸進(jìn)去,例如輸入a(10)。自定義數(shù)組屬性可為二維數(shù)組。數(shù)組屬性默認(rèn)值為.F.,且為只讀。要想修改它的類型和值,可通過(guò)程序來(lái)修改。編輯自定義數(shù)組屬性與編輯自定義屬性方法一樣。例6.27用自定義數(shù)組屬性顯示1-10之間的平方6.5.2自定義方法 自定義方法可以傳遞參數(shù),可以有返回值,因此它集中了前面學(xué)的子程序、函數(shù)、過(guò)程的優(yōu)點(diǎn)。

1、自定義方法的添加

2、參數(shù)的傳遞命令 格式: PARAMETERS<形參表>| LPATAMETERS<形參表>

功能:接收調(diào)用者傳來(lái)的數(shù)據(jù)。 說(shuō)明:(1)PARAMETERS與LPATAMETERS區(qū)別在于PARAMETERS接收的參數(shù)變量屬于PRIVATE性質(zhì),而LPATAMETERS接收參數(shù)變量屬于LOCAL性質(zhì)。(2)若自定義方法需要傳遞參數(shù)可將此命令寫入方法的第一行,若不需要傳遞參數(shù),此命令就不可寫了。3、調(diào)用方法形式

對(duì)象.方法名([實(shí)參表])

說(shuō)明:實(shí)參表中實(shí)參可為數(shù)據(jù)、變量、變量的地址,變量的地址形式為@變量名。4、方法的返回命令格式:RETURN[<表達(dá)式>]

功能:為自定義方法返回表達(dá)式指定的值 說(shuō)明:1.若無(wú)表達(dá)式。RETURN返回.T.。2.若自定義方法不需要返回值,可不寫返回命令。例6.28計(jì)算1+2+…+n的值

例6.29計(jì)算n!6.6表單集與多重表單 在前面的學(xué)習(xí)中程序界面一次只出現(xiàn)一個(gè),但軟件開發(fā)中經(jīng)常遇到同時(shí)使用多個(gè)界面的問(wèn)題。對(duì)這類問(wèn)題,VFP使用表單集與多重表單的功能來(lái)解決。當(dāng)多個(gè)表單之間存在著頻繁的信息交流時(shí)VFP用表單集來(lái)處理。當(dāng)多個(gè)表單之間存在調(diào)用與被調(diào)用關(guān)系時(shí)VFP用多重表單來(lái)處理。6.6.1表單集 表單集是一個(gè)容器,它被創(chuàng)建后并不可見(jiàn),表單集一旦被創(chuàng)建,它內(nèi)部自動(dòng)包含一個(gè)表單。表單集的默認(rèn)名為FormSet1,表單集中第一個(gè)表單默認(rèn)名為Form1。

在表單集中表單的地位是平等的,沒(méi)有主從關(guān)系。表單集對(duì)它內(nèi)部中的表單實(shí)行統(tǒng)一管理與操作。在表單集中可以同時(shí)顯示或隱藏表單,并能以可視化的模式調(diào)整多個(gè)表單的相對(duì)位置,可在一個(gè)表單中方便地操縱另一個(gè)表單及其中的對(duì)象,在表單集中的表單都可以有獨(dú)立的數(shù)據(jù)環(huán)境。從而可以同時(shí)控制在多個(gè)表單中的記錄指針。這是指當(dāng)在一個(gè)表單中父表的記錄指針改變時(shí),在其他表單中的與其相關(guān)的子表的記錄指針隨著相應(yīng)地改變和顯示。例6.30

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論