《數據庫原理與應用(VFP)第二版》課件-第7章 可視化程序設計_第1頁
《數據庫原理與應用(VFP)第二版》課件-第7章 可視化程序設計_第2頁
《數據庫原理與應用(VFP)第二版》課件-第7章 可視化程序設計_第3頁
《數據庫原理與應用(VFP)第二版》課件-第7章 可視化程序設計_第4頁
《數據庫原理與應用(VFP)第二版》課件-第7章 可視化程序設計_第5頁
已閱讀5頁,還剩55頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第7章可視化程序設計

7.1面向對象的程序設計7.2.類的創建7.3.對象的操作7.4.表單設計7.5常用控件及其應用學習目標理解對象的概念;理解類的概念,掌握類的創建方法和對象創建的方法;理解并掌握新建屬性和方法程序的方法;理解并掌握VFP提供29種基類;熟練掌握表單的設計與運行的方法;熟練掌握常用控件的使用方法。重點與難點重點在于面向對象的概念的理解、控件的設計和表單設計方法的掌握;難點在于面向對象的事件驅動程序的設計方法的掌握。7.1面向對象的程序設計面向對象的程序設計,不是單純地從代碼的第一行一直編到最后一行,而是考慮如何創建對象,用對象的概念來思考,簡化了程序設計,提供代碼的可重用性。所以對象的概念是面向對象的程序設計的核心。7.1.1對象對象是反映客觀事物屬性及行為特征的描述。一個對象是既包含有數據(也稱屬性),又包含有處理該數據代碼(也稱方法)的一個邏輯實體。在VFP中,各種對象擁有70多個屬性,對象的屬性可以在設計對象時定義,也可以在對象運行時進行設置。對象支持封裝性、多態性與繼承性。7.1.2類類是一組對象的屬性和行為特征的抽象描述,是具有共同屬性和行為特征的對象集合。類具有如下特征:封裝性、可派生子類、繼承性和隱藏不必要的復雜性等。在VFP系統中,類就像是一個模版(Template),對象是由類生成的,是類的實例。類定義了對象的公共屬性、事件和方法,從而決定了對象的一般性的屬性和行為。VFP系統提供了29個基類。VFP系統提供的29個基類它們可以分為容器類和控件類。(1)控件類(ControlObjectClass):是封裝嚴密、沒有方法程序和不能容納其他對象。譬如:文本控件。(2)容器類(ContainerClass):可以包含其他對象,并且允許訪問所包含的對象。譬如:表單類可以允許添加其他控件到它里面。7.1.3事件與方法事件(Event)是每個對象可能用以識別和響應的某些行為和動作,它是一種預先定義好的特定動作,由用戶或系統激活,在多數情況下,它是通過用戶的交互操作產生的。在VFP中,對象可以響應50多種事件。方法(Method)是附屬于對象的行為和動作。方法程序是與對象相關聯的過程,但又不同于一般的VFP過程。方法程序緊密地和對象連接在一起,并且與一般VFP過程的調用方式也有所不同。事件集合雖然范圍很廣卻是固定的,用戶不能創建新的事件,然而方法程序集合卻可以無限擴展。核心事件(適用于大多數的控件)事件事件被激發后的動作Init創建對象Destroy從內存中釋放對象Click鼠標單擊對象DblClick鼠標雙擊對象RightClick鼠標右擊對象GotFocus對象接收焦點。由用戶動作引起,如Tab鍵或單擊,或在代碼中使用SetFocus方法程序LostFocus對象失去焦點。由用戶動作引起,如Tab鍵或單擊,或在代碼中使用SetFocus方法程序使焦點移到新的對象上KeyPress按下或釋放鍵MouseDown當鼠標指針停在一個對象上時,用戶按下鼠標按鈕MouseMove用戶在對象上移動鼠標Mouseup當鼠標指針停在一個對象上,用戶釋放鼠標按鈕7.2.類的創建可視化程序設計開發數據庫應用系統,通常是把常用的對象定義成一個類,再根據需要在這個類的基礎上,派生出一個或多個具體對象,最后利用這些對象來設計數據庫應用系統程序。這樣做的好處提高編程效率,方便維護。1.創建類創建一個新類,有三種方法:(1)使用類設計器(2)在表單設計器中定義類(3)使用DefineClass定義類(1)使用類設計器createclass<類名>或createclass<類名>of<類庫名>(2)在表單設計器中定義類在“表單設計器”中,通過添加控件和交互式、可視地設置類的屬性來定義,在7.4節會詳細講述。(3)使用DefineClass定義類通過DefineClass命令編程方式來定義。命令格式如下:defineclass<類名>as<父類名>[object.]property=expression[addobject<對象名>as<類名>withpropertylist][procedurename<命令序列>endprocedure]enddefine【例7.1】定義一個帶有命令按鈕(“關閉”)的容器類“exitform”。defineclassexitformasformvisible=.t.caption="退出"left=20top=10height=223width=443addobjectcomm1ascommandbutton;withcaption="關閉",left=300,top=150,height=25,width=60procedurecomm1.clickreleasethisformendprocedureenddefine

類定義好了以后就可以由它來創建對象。

2.修改類定義類定義后,還可以對它進行修改。對類的修改將影響所有的子類和基于這個類的所有對象,即所有子類和基于這個類的所有對象都將繼承修改。修改類的方法有三種:(1)通過“項目管理器”,選擇待修改的類,單擊“修改”以打開“類設計器”進行修改。(2)通過文件打開類庫,選擇修改的類。(3)使用命令modifyclass

3.創建類定義的子類可以使用兩種方法創建用戶自定義類的子類:(1)在“新建類”對話框中,如圖7.1所示,單擊“派生于”框右邊的對話框鈕(…),在“打開”對話框中選擇派生新類的父類。(2)使用CreateClass命令

createclass子類名of類庫名as父類名from存放類庫的文件名4.“類”菜單打開類設計器,在VFP系統主菜單上出現了“類”菜單,該菜單中包括:新建屬性、新建方法程序等,可以向定義的新類添加任意多的新屬性和方法程序,屬性保存值,而方法程序則保存調用時可以運行的過程代碼。(1)新建屬性Access和Assign方法程序的區別:當使用對象引用中的屬性,將屬性值存儲到變量中,或用“?”命令顯示屬性值時,即在查詢屬性值時,執行Access方法程序中的代碼;而當試圖改變屬性值時,將執行Assign方法程序中的代碼。(2)新建方法程序7.3.對象的操作類是對象的抽象,對象是類的實例。類不能直接被引用,由類創建的對象才能被引用,所以,對象的過程代碼設計特別重要。下面給出一些對象的基本操作命令。

1.由類創建對象<對象名>=createobject(<類名>)2.設置對象的屬性perty=value3.調用對象的方法parent.object.method設置對象的屬性的簡化方法簡化方法

with<路徑><屬性值表>endwith例如:withform1.caption="我的表單".backcolor=rgb(128,128,0)……endwith7.4.表單設計在VFP中,表單(Form)是數據庫應用系統的主要工作界面,也成為屏幕(Screen),保存的文件類型名為SCX就有這個意思。表單的設計是可視化程序設計的基礎,也是學習可視化程序設計的最重要環節。表單是一個容器基類,具有多種屬性,又可以在其中添加控件,可以響應多種事件實現多種操作。7.4.1創建表單

創建表單的過程就是添加控件、定義控件的屬性、確定事件或方法程序代碼的過程。VFP中,可以使用以下任意一種菜單方式創建表單:(1)使用表單向導創建表單。(2)在“表單”菜單中選擇“快速表單”命令,建立一個用戶可以通過添加自己的控件來定制的簡單表單。(3)使用“表單設計器”修改已有的表單或創建自己的表單。表單設計器createform表單名7.4.2定制表單新建的表單是一個空表單,還需對表單進行控件的添加和其屬性與代碼的設置,這一過程就是定制表單。包括:

1.設置數據環境

2.向表單中添加控件

3.向表單中添加新的屬性與方法

4.定義表單的操作行為

5.編輯事件代碼或方法代碼

6.預定義常量1.設置數據環境設置數據環境就是指定與表單關聯的表或視圖??丶膶傩訡ontrolSource(數據源)把添加到表單中的控件與表或視圖中的字段關聯起來。在“表單設計器”中右擊彈出一個快捷菜單,從其中選擇“數據環境”就可打開“數據環境設計器”窗口。2.向表單中添加控件(1)使用表單控件工具欄(2)利用數據環境向表單中添加控件(3)使用表單生成器3.向表單中添加新的屬性與方法4.定義表單的操作行為定義表單的操作行為是通過“屬性”窗口設置,不同的控件可以有不同的屬性、方法等。5.編輯事件代碼或方法代碼創建表單或向表單中添加控件后,如果要讓它們“動起來”,必須編寫事件代碼或方法代碼。進入代碼編輯狀態,有多種方法,其中鼠標雙擊相應的控件的方法最簡便。6.預定義常量除了可以向表單添加屬性變量,還可以預定義常量。預定義常量是通過“表單”菜單中的“包含文件”菜單項來實現的。包含的文件是指頭文件,其內容是用宏命令定義常量,譬如:#defineE2.718。7.4.3修改表單如果使用向導或生成器建立的表單沒有達到要求,還可以使用“表單設計器”進行修改:移動和調整控件的大小、復制或刪除控件、對齊控件以及修改Tab鍵次序等等。注意:對控件進行操作前,首先需要選中控件。

修改表單的基本操作1)選中控件:單擊需要選定的控件就可以選中該控件。如果需要同時選中多個控件,只需在單擊時按住shift鍵不放。2)移動控件:可以通過鼠標拖動選中的控件或用光標鍵上、下、左、右來移動。3)縮放控件:選中的控件四周有“尺寸柄”,往外拖動可以放大控件,往里拖動可以縮小控件。4)復制或刪除控件:通過“剪貼板”可以復制或刪除控件;對選定的控件,單擊delete鍵也可快速刪除控件。5)對齊控件:選定需要對齊的控件,使用布局工具按鈕就可以對齊控件了。

6)設置控件的Tab次序:Tab次序確定輸入數據按Tab鍵下跳哪一個控件,而按Shift+Tab組合鍵回跳哪一個控件。設置方法:交互方式或列表方式。7.4.4表單管理管理項命令說明隱藏表單ThisForm.Hide顯示表單ThisForm.Show傳遞參數DoFormwith"張三",20在表單的init事件代碼中包含如下語句:ParametersCstring,nNumberThisForm.cName=CstringThisForm.nAge=nNumber其中:cName、nAge是添加的屬性。返回值DoFormFindNowith"張三",20ToStudentNo將命令表單FindNo查找到的學號存入內存變量StudentNo中。要求在FindNo的Unload事件代碼中包含Return語句,且要求表單屬性WindowType設置為1(模式)。關閉表單ReleaseFindNo或FindNo.release關閉表單FindNo屬性設置ThisForm.Caption="查詢"ThisFormSet.Form1.Visible=.F.設置標題屬性。設置表單集中的form1不可見。7.4.5保存和運行表單保存表單就是將設計好的表單保存到表單文件(.scx)中,從“文件”菜單中選擇“保存”或按Ctrl+W鍵,首次保存還需要輸入文件主名。運行表單的方法有多種:

(1)從“項目管理器”中運行。(2)從“表單”菜單中選擇“運行表單”菜單項。(3)在“表單設計器”中右擊,彈出快捷菜單選擇“運行表單”菜單項。(4)單擊工具欄上的運行命令按鈕(紅色“!”按鈕)。(5)使用命令運行表單,命令格式如下:doform表單名7.4.6創建表單集VFP中,可以將多個表單包含在一個表單集,這樣可以對表單集中的所有表單進行統一操作。譬如:一起顯示或隱藏表單集中的表單,統一控制和安排這些表單的相對位置,在表單集上設置數據環境等。啟動運行表單集時,表單集中的所有表單將一起裝入內存。創建表單集:從“表單”菜單中選擇“創建表單集”菜單項就可以創建。創建了表單集后,使用“表單”菜單中的“添加新表單”菜單項就可以將表單添加到表單集,使用“移去”菜單項可以從表單集中移去表單。7.5常用控件及其應用常用控件出現在表單控件工具欄的控件,當鼠標指針在相應的控件并稍作停留時,該控件的名稱會顯示出來。

7.5.1標簽控件標簽(Label)控件只用于顯示文本類型的提示信息,本身沒有數據處理的功能,也不能被直接編輯。(1)Caption:設置標簽的標題,即標簽顯示的提示信息。(2)AutoSize:可以設置為真或假。為真時,控件的大小隨文本的改變而變化;為假時控件的大小不隨文本的變化而變化。(3)BackStyle:可以設置為0或1。為0表示無邊框;為1時表示有固定單線。(4)WordWrap:確定標簽上顯示的文本是否換行,可以設置為真或假。

7.5.2文本框控件與編輯框控件文本框(Text)控件是設計交互式應用程序所不可缺少的控件,可以輸入至多255個字符的單行文本或多行文本,具有基本的文字處理功能,譬如:可以使用“剪貼板”。它常用于在運行時接受用戶的輸入文本,也可用于顯示文本信息,是字符型字段默認綁定的控件。編輯框(Edit)控件同文本框控件的作用相同,用于輸入或顯示文本信息,但文本框至多只能接受255個字符,而編輯框控件可以接受多于255個字符,是備注型字段默認綁定的控件。編輯框有滾動條,當數據內容沒有超過編輯區域時,該滾動條呈灰色,為不可用狀態。7.5.3命令按鈕與命令按鈕組控件命令按鈕與命令按鈕組控件用于在人機交互界面上觸發一些事件,以便完成所需的任務,譬如:釋放表單,保存數據,取消輸入等。命令按鈕的提示信息可以是文本的,也可以是圖形的。命令按鈕組控件是一種容器,在其下一層次可以設定一組命令按鈕。初學者常遇到不能選定容器中下一層次控件的情況,可以通過“屬性”窗口中來選定或從鼠標右擊容器控件彈出的快捷菜單中選擇“編輯”菜單項,從命令按鈕組中選擇命令按鈕的操作?!纠?.2】設計一個程序文件(.prg)內容的閱讀器。該閱讀器可以實現輸入文件名或未輸入文件名而直接單擊“確定”來通過“打開”窗口選擇文件,如果選擇的文件存在,則在編輯框中顯示內容。

7.5.4選項組控件與復選框控件選項組(OptionGroup)控件是一個包含選項命令的容器,與命令按鈕組控件相似,選項組對象的下一層是選項命令按鈕對象。選項組控件用于多個值只能選取之一的情形,在選項命令按鈕前的圓圈中黑點表示該項被選中。復選框(Check)控件用來在邏輯值真(.T.)和假(.F.)之間切換,多個復選框構成的復選框組允許選取多項,在選項前的方框中“×”表示該項選中。復選框和選項組都為用戶提供了友好、美觀的界面,用戶可以十分方便地通過鼠標準確輸入。【例7.3】設計一個客觀題測試的簡單系統。系統功能:根據參考答案來確定是單選題還是多選題;能夠循環地選擇數據表中所有的題目;可以判斷是否選擇正確,如果錯誤需要給出答案。題庫數據表(TK.dbf)存放題目、選項、參考答案和選擇。7.5.5列表框控件與組合框控件列表框(ListBox)用于顯示一系列數據項,方便用戶從中選擇一項或多項。組合框(ComboBox)相當于文本框和列表框的組合,它有兩種表現方式,一種是下拉組合框,另一個是下拉列表框,這兩種方式的區別在于:利用下拉組合框可以通過鍵盤輸入內容;而下拉列表框只能選擇列表中的值,而無法進行輸入。列表框與組合框功能相似,不同之處:(1)列表框可顯示多個數據項,而組合框初始時只顯示一個數據項,所以使用組合框可以節省界面。(2)列表框可選擇多個數據項,而組合框只能選擇一個數據項。(3)列表框不允許用戶輸入數據項,而組合框中的下拉組合框允許用戶鍵盤輸入。數據源數據源是使用列表框和組合框控件首先需要考慮的,它們的數據源是通過RowSource屬性來設置,但必須與RowSourceType屬性的設置相對應,否則表單不會正確運行。RowSourceType的值說明0-無運行時通過AddItem或AddListItem方法添加數據項1-值直接設置顯示的數據項,各數據項間用逗號分隔2-別名使用ColumnCount屬性在數據表中選擇字段3-SQL語句SQLSelect命令用于創建一個表或臨時表4-查詢(.qpr)指定查詢文件5-數組設置列屬性可以顯示多維數組的多個列6-字段用逗號分隔的字段列表7-文件指定數據表文件8-結構由RowSource所指定的表的字段填充列9-彈出式菜單包含此設置是為了向下兼容【例7.4】設計一個下拉框和組合框測試的簡單系統。7.5.6圖像控件圖像(Image)控件用于在表單上顯示圖像文件,譬如:.BMP、.GIF、.JPG或圖標.ICO等類型的文件,不能對顯示的圖像進行編輯,使用該控件可以使界面顯得更生動。常用的屬性如下:(1)Picture:指定圖像文件。(2)Stretch:指定圖像文件大小的調整方式以適應圖像控件區域的大小,該屬性有三種取值:0、1或2。

7.5.7線條控件與形狀控件線條(Line)控件是一種圖形控件,用于創建水平線、垂直線或對角線。由于不能對它進行編輯,如果需要對它進行修改,必須通過線條屬性設置或事件過程來完成。形狀(Shape)控件也是一種圖形控件,同樣不能對它進行直接編輯,也需要通過屬性設置或事件過程來修改。它主要用于創建矩形、圓或橢圓形狀的對象。

7.5.8微調控件微調(Spinner)控件用于接收指定范圍內的數值輸入,通過在當前值的基礎上做微小的增量(單擊向上箭頭)或減量(單擊向下箭頭)調節可以代替鍵盤輸入,也可以通過鍵盤在微調控件框內直接輸入數值。它的常用屬性如下:1)Increment:指定微調控件向上或向下箭頭的微調量,默認值為1.0。2)KeyBoardHighValue:指定在微調控件框中通過鍵盤可輸入的最大值。3)KeyBoardLowValue:指定在微調控件框中通過鍵盤可輸入的最小值。4)SpinnerHighValue:指定單擊微調控件的向上箭頭能調節的最大值。5)SpinnerLowValue:指定單擊微調控件的向下箭頭所能調節的最小值。它的常用事件如下:1)InteractiveChange:使用鼠標或鍵盤改變微調控件的值時觸發該事件。7.5.9OLE控件OLE控件用于顯示和操作OLE對象(是指可供鏈接或嵌入的對象),譬如:文本、聲音、圖像、動畫或視頻數據等。OLE對象是Windows環境下提供的實現程序間共享信息資源的一種手段,它可以分為OLE綁定型對象和OLE容器兩類,前者僅用于將依附于數據表的通用字段中的OLE對象添加到表單中,它也是將通用字段中的OLE對象添加到表單中的唯一方法;后者將不依附于數據表的通用字段的OLE對象添加到表單中。

7.5.10頁框控件頁框(PageFrame)控件是包含頁面的容器控件,而頁面中又可以包含控件。一個頁框控件可以包含有兩個以上的頁面,這些頁面共同占用表單的一塊區域,在任何時刻只有一個頁面是活動頁面,只有活動頁面中的控件才是可見的,通過頁框中的頁面標題可以方便地完成頁面的快速切換?!纠?.5】使用頁框控件設計界面,第1個頁面通過微調設置一個形狀的曲率并顯示圖形;第2個頁面通過命令按鈕組的選擇顯示圖像的裁剪、等比填充或變比填充;第3個頁面根據設定的參數畫線顯示線條。第4個頁面插入日歷OLE控件。7.5.11計時器控件計時器(Timer)控件用于通過時間間隔自動觸發事件,常用于控制定時執行某些重復的操作,它在運行時是不可見的,具有如下常用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論