數據庫原理第7章可視化程序設計ppt課件_第1頁
數據庫原理第7章可視化程序設計ppt課件_第2頁
數據庫原理第7章可視化程序設計ppt課件_第3頁
數據庫原理第7章可視化程序設計ppt課件_第4頁
數據庫原理第7章可視化程序設計ppt課件_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第7章可視化程序設計7.1 面向對象的程序設計7.2.類的創(chuàng)建7.3.對象的操作7.4.表單設計7.5 常用控件及其應用學習目標學習目標 理解對象的概念;理解類的概念,掌握類的創(chuàng)建方法和對象創(chuàng)建的方法;理解并掌握新建屬性和方法程序的方法;理解并掌握VFP提供29種基類;熟練掌握表單的設計與運行的方法;熟練掌握常用控件的使用方法。 重點與難點重點與難點 l重點在于面向對象的概念的理解、控件的設計和表單設計方法的掌握;l難點在于面向對象的事件驅動程序的設計方法的掌握。7.1 面向對象的程序設計面向對象的程序設計l面向對象的程序設計,不是單純地從代碼的第一行一直編到最后一行,而是考慮如何創(chuàng)建對象,用

2、對象的概念來思考,簡化了程序設計,提供代碼的可重用性。所以對象的概念是面向對象的程序設計的核心。7.1.1 對象l對象是反映客觀事物屬性及行為特征的描述。一個對象是既包含有數據也稱屬性),又包含有處理該數據代碼也稱方法的一個邏輯實體。 l在VFP中,各種對象擁有70多個屬性,對象的屬性可以在設計對象時定義,也可以在對象運行時進行設置。l對象支持封裝性、多態(tài)性與繼承性。7.1.2 類l類是一組對象的屬性和行為特征的抽象描述,是具有共同屬性和行為特征的對象集合。l類具有如下特征:封裝性、可派生子類、繼承性和隱藏不必要的復雜性等。l在VFP系統(tǒng)中,類就像是一個模版Template),對象是由類生成的

3、,是類的實例。 l類定義了對象的公共屬性、事件和方法,從而決定了對象的一般性的屬性和行為。VFP系統(tǒng)提供了29個基類 。VFP系統(tǒng)提供的系統(tǒng)提供的29個基類個基類 l它們可以分為容器類和控件類。 l(1控件類Control Object Class):是封裝嚴密、沒有方法程序和不能容納其他對象。譬如:文本控件。l(2容器類Container Class):可以包含其他對象,并且允許訪問所包含的對象。譬如:表單類可以允許添加其他控件到它里面。 7.1.3 事件與方法l事件Event是每個對象可能用以識別和響應的某些行為和動作,它是一種預先定義好的特定動作,由用戶或系統(tǒng)激活,在多數情況下,它是通過

4、用戶的交互操作產生的 。在VFP中,對象可以響應50多種事件。 l方法Method是附屬于對象的行為和動作。方法程序是與對象相關聯的過程,但又不同于一般的VFP過程。方法程序緊密地和對象連接在一起,并且與一般VFP過程的調用方式也有所不同。l事件集合雖然范圍很廣卻是固定的,用戶不能創(chuàng)建新的事件,然而方法程序集合卻可以無限擴展。 核心事件適用于大多數的控件)核心事件適用于大多數的控件) 事件事件事件被激發(fā)后的動作事件被激發(fā)后的動作Init創(chuàng)建對象Destroy從內存中釋放對象Click鼠標單擊對象DblClick鼠標雙擊對象RightClick鼠標右擊對象GotFocus對象接收焦點。由用戶動作

5、引起,如Tab鍵或單擊,或在代碼中使用SetFocus方法程序LostFocus對象失去焦點。由用戶動作引起,如Tab鍵或單擊,或在代碼中使用SetFocus方法程序使焦點移到新的對象上KeyPress按下或釋放鍵MouseDown當鼠標指針停在一個對象上時,用戶按下鼠標按鈕MouseMove用戶在對象上移動鼠標Mouseup當鼠標指針停在一個對象上,用戶釋放鼠標按鈕7.2.類的創(chuàng)建類的創(chuàng)建l可視化程序設計開發(fā)數據庫應用系統(tǒng),通常是把常用的對象定義成一個類,再根據需要在這個類的基礎上,派生出一個或多個具體對象,最后利用這些對象來設計數據庫應用系統(tǒng)程序。這樣做的好處提高編程效率,方便維護。1創(chuàng)建

6、類創(chuàng)建類l創(chuàng)建一個新類,有三種方法:l(1使用類設計器l(2在表單設計器中定義類l(3使用Define Class定義類(1使用類設計器使用類設計器create class 或或 create class of (2在表單設計器中定義類在表單設計器中定義類l在“表單設計器中,通過添加控件和交互式、可視地設置類的屬性來定義,在7.4節(jié)會詳細講述。(3使用使用Define Class定義類定義類u通過Define Class命令編程方式來定義。命令格式如下:udefine class as u perty=expressionu add object as u with pro

7、perty list u procedure nameu u endprocedureuenddefine【例【例7.1】定義一個帶有命令按鈕(】定義一個帶有命令按鈕(“封鎖封鎖”)的容器類的容器類“exitform”。define class exitform as form visible=.t. caption=退出 left=20 top=10 height=223 width=443 add object comm1 as commandbutton; with caption=封鎖,left=300,top=150,height=25,width=60 procedure comm

8、1.click release thisform endprocedureenddefine 類定義好了以后就可以由它來創(chuàng)建對象。類定義好了以后就可以由它來創(chuàng)建對象。 2修改類定義修改類定義l類定義后,還可以對它進行修改。對類的修改將影響所有的子類和基于這個類的所有對象,即所有子類和基于這個類的所有對象都將繼承修改。l修改類的方法有三種:l(1經過“項目管理器”,選擇待修改的類,單擊“修正以打開“類設計器進行修改。l(2通過文件打開類庫,選擇修改的類。l(3使用命令 modify class 3創(chuàng)建類定義的子類創(chuàng)建類定義的子類l可以使用兩種方法創(chuàng)建用戶自定義類的子類:l(1在“新建類對話框中,

9、如圖7.1所示,單擊“派生于框右邊的對話框鈕(),在“翻開對話框中選擇派生新類的父類。l(2使用Create Class命令l create class 子類名 of 類庫名 as 父類名 from 存放類庫的文件名4“類菜單類菜單l打開類設計器,在VFP系統(tǒng)主菜單上出現了“類菜單,該菜單中包括:新建屬性、新建方法程序等,可以向定義的新類添加任意多的新屬性和方法程序,屬性保存值,而方法程序則保存調用時可以運行的過程代碼。(1新建屬性新建屬性Access和和Assign方法程序的區(qū)別:當使用對象引用中的屬性,方法程序的區(qū)別:當使用對象引用中的屬性,將屬性值存儲到變量中,或用將屬性值存儲到變量中,

10、或用“?”命令顯示屬性值時,即在命令顯示屬性值時,即在查詢屬性值時,執(zhí)行查詢屬性值時,執(zhí)行Access方法程序中的代碼;而當試圖改變方法程序中的代碼;而當試圖改變屬性值時,將執(zhí)行屬性值時,將執(zhí)行Assign方法程序中的代碼。方法程序中的代碼。(2新建方法程序新建方法程序7.3.對象的操作對象的操作l類是對象的抽象,對象是類的實例。類不能直接被引用,由類創(chuàng)建的對象才能被引用,所以,對象的過程代碼設計特別重要。下面給出一些對象的基本操作命令。l 1由類創(chuàng)建對象l=createobject()l 2. 設置對象的屬性perty=value l 3調用對象的方法lp

11、arent.object.method 設置對象的屬性的簡化方法設置對象的屬性的簡化方法u簡化方法 u with u u endwithu例如:uwith form1u .caption=我的表單u .backcolor=rgb(128,128,0)u uendwith 7.4.表單設計表單設計l在VFP中,表單Form是數據庫應用系統(tǒng)的主要工作界面,也成為屏幕Screen),保存的文件類型名為SCX就有這個意思。l表單的設計是可視化程序設計的基礎,也是學習可視化程序設計的最重要環(huán)節(jié)。l表單是一個容器基類,具有多種屬性,又可以在其中添加控件,可以響應多種事件實現多種操作。 7.4.1 創(chuàng)建表單

12、l 創(chuàng)建表單的過程就是添加控件、定義控件的屬性、確定事件或方法程序代碼的過程。VFP中,可以使用以下任意一種菜單方式創(chuàng)建表單:l(1使用表單向導創(chuàng)建表單。l(2在“表單菜單中選擇“快速表單命令,建立一個用戶可以通過添加自己的控件來定制的簡單表單。l(3運用“表單設計器修改已有的表單或創(chuàng)建自己的表單。表單設計器表單設計器 create form 表單名表單名7.4.2 定制表單l新建的表單是一個空表單,還需對表單進行控件的添加和其屬性與代碼的設置,這一過程就是定制表單。包括:l 1設置數據環(huán)境l 2向表單中添加控件l 3向表單中添加新的屬性與方法l 4定義表單的操作行為l 5編輯事件代碼或方法代

13、碼l 6預定義常量1設置數據環(huán)境設置數據環(huán)境l設置數據環(huán)境就是指定與表單關聯的表或視圖。控件的屬性ControlSource(數據源)把添加到表單中的控件與表或視圖中的字段關聯起來。在“表單設計器中右擊彈出一個快捷菜單,從其中選擇“數據環(huán)境就可打開“數據環(huán)境設計器窗口 。2向表單中添加控件向表單中添加控件(1使用表單控件工具欄(2利用數據環(huán)境向表單中添加控件(3使用表單生成器3向表單中添加新的屬性與方法向表單中添加新的屬性與方法4定義表單的操作行為定義表單的操作行為l定義表單的操作行為是通過“屬性窗口設置,不同的控件可以有不同的屬性、方法等 。5編輯事件代碼或方法代碼編輯事件代碼或方法代碼l創(chuàng)

14、建表單或向表單中添加控件后,如果要讓它們“動起來”,必須編寫事件代碼或方法代碼。進入代碼編輯狀態(tài),有多種方法,其中鼠標雙擊相應的控件的方法最簡便 。6預定義常量預定義常量l除了可以向表單添加屬性變量,還可以預定義常量。l預定義常量是通過“表單菜單中的“包含文件菜單項來實現的。l包含的文件是指頭文件,其內容是用宏命令定義常量,譬如:l#define E 2.718。 7.4.3 修改表單l如果使用向導或生成器建立的表單沒有達到要求,還可以使用“表單設計器進行修改:移動和調整控件的大小、復制或刪除控件、對齊控件以及修改Tab鍵次序等等。l留意:對控件進行操作前,首先需要選中控件。l 修改表單的基本

15、操作修改表單的基本操作1選中控件:單擊需要選定的控件就可以選中該控件。如果需要同時選中多個控件,只需在單擊時按住shift鍵不放。2移動控件:可以通過鼠標拖動選中的控件或用光標鍵上、下、左、右來移動。3縮放控件:選中的控件四周有“尺寸柄”,往外拖動可以放大控件,往里拖動可以縮小控件。4復制或刪除控件:經過“剪貼板可以復制或刪除控件;對選定的控件,單擊delete鍵也可快速刪除控件。5對齊控件:選定需要對齊的控件,使用布局工具按鈕就可以對齊控件了。 6設置控件的Tab次序:Tab次序確定輸入數據按Tab鍵下跳哪一個控件,而按Shift+Tab組合鍵回跳哪一個控件。設置方法:交互方式或列表方式。7

16、.4.4 表單管理管理項管理項命令命令說明說明隱藏表單ThisForm.Hide顯示表單ThisForm.Show傳遞參數Do Form with 張三,20在表單的init事件代碼中包含如下語句:Parameters Cstring , nNumberThisForm.cName=CstringThisForm.nAge=nNumber其中:cName 、nAge是添加的屬性。返回值Do Form FindNo with 張三,20 To StudentNo 將命令表單FindNo查找到的學號存入內存變量StudentNo中。要求在FindNo的Unload事件代碼中包含Return語句,且

17、要求表單屬性WindowType設置為1(模式)。關閉表單Release FindNo 或FindNo.release關閉表單FindNo屬性設置ThisForm.Caption=查詢ThisFormSet.Form1.Visible=.F.設置標題屬性。設置表單集中的form1不可見。7.4.5 保存和運行表單l保存表單就是將設計好的表單保存到表單文件(.scx中,從“文件菜單中選擇“保管或按Ctrl+W鍵,首次保存還需要輸入文件主名。l運行表單的方法有多種: l(1從“項目管理器中運行。l(2從“表單菜單中選擇“運行表單菜單項。l(3在“表單設計器中右擊,彈出快捷菜單選擇“運行表單菜單項。

18、l(4單擊工具欄上的運行命令按鈕紅色“!”按鈕)。l(5使用命令運行表單,命令格式如下:ldo form 表單名7.4.6 創(chuàng)建表單集lVFP中,可以將多個表單包含在一個表單集,這樣可以對表單集中的所有表單進行統(tǒng)一操作。譬如:一起顯示或隱藏表單集中的表單,統(tǒng)一控制和安排這些表單的相對位置,在表單集上設置數據環(huán)境等。啟動運行表單集時,表單集中的所有表單將一起裝入內存。l創(chuàng)建表單集:從“表單菜單中選擇“創(chuàng)建表單集菜單項就可以創(chuàng)建。創(chuàng)建了表單集后,運用“表單菜單中的“添加新表單菜單項就可以將表單添加到表單集,運用“移去菜單項可以從表單集中移去表單。7.5 常用控件及其應用常用控件及其應用l常用控件出

19、現在表單控件工具欄的控件,當鼠標指針在相應的控件并稍作停留時,該控件的名稱會顯示出來。 7.5.1 標簽控件l標簽Label控件只用于顯示文本類型的提示信息,本身沒有數據處理的功能,也不能被直接編輯。l(1Caption:設置標簽的標題,即標簽顯示的提示信息。l(2AutoSize:可以設置為真或假。為真時,控件的大小隨文本的改變而變化;為假時控件的大小不隨文本的變化而變化。l(3BackStyle:可以設置為0或1。為0表示無邊框;為1時表示有固定單線。l(4WordWrap:確定標簽上顯示的文本是否換行,可以設置為真或假。 7.5.2 文本框控件與編輯框控件l文本框Text控件是設計交互式

20、應用程序所不可缺少的控件,可以輸入至多255個字符的單行文本或多行文本,具有基本的文字處理功能,譬如:可以使用“剪貼板”。它常用于在運行時接受用戶的輸入文本,也可用于顯示文本信息,是字符型字段默認綁定的控件。 l編輯框Edit控件同文本框控件的作用相同,用于輸入或顯示文本信息,但文本框至多只能接受255個字符,而編輯框控件可以接受多于255個字符,是備注型字段默認綁定的控件。編輯框有滾動條,當數據內容沒有超過編輯區(qū)域時,該滾動條呈灰色,為不可用狀態(tài)。7.5.3 命令按鈕與命令按鈕組控件l命令按鈕與命令按鈕組控件用于在人機交互界面上觸發(fā)一些事件,以便完成所需的任務,譬如:釋放表單,保存數據,取消

21、輸入等。命令按鈕的提示信息可以是文本的,也可以是圖形的。 l命令按鈕組控件是一種容器,在其下一層次可以設定一組命令按鈕。 l初學者常遇到不能選定容器中下一層次控件的情況,可以通過“屬性窗口中來選定或從鼠標右擊容器控件彈出的快捷菜單中選擇“編輯菜單項,從命令按鈕組中選擇命令按鈕的操作?!纠纠?.2】設計一個程序文件】設計一個程序文件(.prg)內容的閱讀器。該閱讀器可以內容的閱讀器。該閱讀器可以實現輸入文件名或未輸入文件名而直接單擊實現輸入文件名或未輸入文件名而直接單擊“確定來通過確定來通過“翻翻開窗口選擇文件,如果選擇的文件存在,則在編輯框中顯示內開窗口選擇文件,如果選擇的文件存在,則在編輯

22、框中顯示內容。容。 7.5.4 選項組控件與復選框控件l選項組OptionGroup控件是一個包含選項命令的容器,與命令按鈕組控件相似,選項組對象的下一層是選項命令按鈕對象 。選項組控件用于多個值只能選取之一的情形,在選項命令按鈕前的圓圈中黑點表示該項被選中。 l復選框Check控件用來在邏輯值真(.T.)和假(.F.)之間切換,多個復選框構成的復選框組允許選取多項,在選項前的方框中“”表示該項選中。l復選框和選項組都為用戶提供了友好、美觀的界面,用戶可以十分方便地通過鼠標準確輸入 。【例【例7.3】設計一個客觀題測試的簡單系統(tǒng)。系統(tǒng)功能:根據參考答案來】設計一個客觀題測試的簡單系統(tǒng)。系統(tǒng)功能

23、:根據參考答案來確定是單選題還是多選題;能夠循環(huán)地選擇數據表中所有的題目;可以判確定是單選題還是多選題;能夠循環(huán)地選擇數據表中所有的題目;可以判斷是否選擇正確,如果錯誤需要給出答案。題庫數據表斷是否選擇正確,如果錯誤需要給出答案。題庫數據表TK.dbf存放存放題目、選項、參考答案和選擇題目、選項、參考答案和選擇 。7.5.5 列表框控件與組合框控件l列表框ListBox用于顯示一系列數據項,方便用戶從中選擇一項或多項。組合框ComboBox相當于文本框和列表框的組合,它有兩種表現方式,一種是下拉組合框,另一個是下拉列表框,這兩種方式的區(qū)別在于:利用下拉組合框可以通過鍵盤輸入內容;而下拉列表框只

24、能選擇列表中的值,而無法進行輸入。列表框與組合框功能相似,不同之處:l(1列表框可顯示多個數據項,而組合框初始時只顯示一個數據項,所以使用組合框可以節(jié)省界面。l(2列表框可選擇多個數據項,而組合框只能選擇一個數據項。l(3列表框不允許用戶輸入數據項,而組合框中的下拉組合框允許用戶鍵盤輸入。數據源數據源 l數據源是使用列表框和組合框控件首先需要考慮的,它們的數據源是通過RowSource屬性來設置,但必須與RowSourceType屬性的設置相對應,否則表單不會正確運行。 RowSourceType的值說明0-無運行時通過AddItem或AddListItem方法添加數據項1-值直接設置顯示的數

25、據項,各數據項間用逗號分隔2-別名使用ColumnCount屬性在數據表中選擇字段3-SQL語句SQL Select命令用于創(chuàng)建一個表或臨時表4-查詢(.qpr)指定查詢文件5-數組設置列屬性可以顯示多維數組的多個列6-字段用逗號分隔的字段列表7-文件指定數據表文件8-結構由RowSource所指定的表的字段填充列9-彈出式菜單包含此設置是為了向下兼容【例【例7.4】設計一個下拉框和組合框測試的簡單】設計一個下拉框和組合框測試的簡單系統(tǒng)。系統(tǒng)。7.5.6 圖像控件l圖像Image控件用于在表單上顯示圖像文件,譬如:.BMP、.GIF、.JPG或圖標.ICO等類型的文件,不能對顯示的圖像進行編輯

26、,使用該控件可以使界面顯得更生動。常用的屬性如下:l(1Picture:指定圖像文件。l(2Stretch:指定圖像文件大小的調整方式以適應圖像控件區(qū)域的大小,該屬性有三種取值:0、1或2。 7.5.7 線條控件與形狀控件l線條Line控件是一種圖形控件,用于創(chuàng)建水平線、垂直線或對角線。由于不能對它進行編輯,如果需要對它進行修改,必須通過線條屬性設置或事件過程來完成。 l外形Shape控件也是一種圖形控件,同樣不能對它進行直接編輯,也需要通過屬性設置或事件過程來修改。它主要用于創(chuàng)建矩形、圓或橢圓形狀的對象。 7.5.8 微調控件l微調Spinner控件用于接收指定范圍內的數值輸入,通過在當前值

27、的基礎上做微小的增量單擊向上箭頭或減量單擊向下箭頭調節(jié)可以代替鍵盤輸入,也可以通過鍵盤在微調控件框內直接輸入數值。它的常用屬性如下:l1Increment:指定微調控件向上或向下箭頭的微調量,默認值為1.0。l2KeyBoardHighValue:指定在微調控件框中通過鍵盤可輸入的最大值。l3KeyBoardLowValue:指定在微調控件框中通過鍵盤可輸入的最小值。l4SpinnerHighValue:指定單擊微調控件的向上箭頭能調節(jié)的最大值。l5SpinnerLowValue:指定單擊微調控件的向下箭頭所能調節(jié)的最小值。l它的常用事件如下:l1InteractiveChange:使用鼠標或

28、鍵盤改變微調控件的值時觸發(fā)該事件。7.5.9 OLE控件lOLE控件用于顯示和操作OLE對象是指可供鏈接或嵌入的對象),譬如:文本、聲音、圖像、動畫或視頻數據等。lOLE對象是Windows環(huán)境下提供的實現程序間共享信息資源的一種手段,它可以分為OLE綁定型對象和OLE容器兩類,前者僅用于將依附于數據表的通用字段中的OLE對象添加到表單中,它也是將通用字段中的OLE對象添加到表單中的唯一方法;后者將不依附于數據表的通用字段的OLE對象添加到表單中。 7.5.10 頁框控件l頁框PageFrame控件是包含頁面的容器控件,而頁面中又可以包含控件。l一個頁框控件可以包含有兩個以上的頁面,這些頁面共

29、同占用表單的一塊區(qū)域,在任何時刻只有一個頁面是活動頁面,只有活動頁面中的控件才是可見的,通過頁框中的頁面標題可以方便地完成頁面的快速切換。 【例【例7.5】使用頁框控件設計界面,第】使用頁框控件設計界面,第1個頁面通過微調設置一個個頁面通過微調設置一個形狀的曲率并顯示圖形;第形狀的曲率并顯示圖形;第2個頁面通過命令按鈕組的選擇顯示圖個頁面通過命令按鈕組的選擇顯示圖像的裁剪、等比填充或變比填充;第像的裁剪、等比填充或變比填充;第3個頁面根據設定的參數畫線個頁面根據設定的參數畫線顯示線條。第顯示線條。第4個頁面插入日歷個頁面插入日歷OLE控件??丶?。7.5.11 計時器控件l計時器Timer控件用于通過時間間隔自動觸發(fā)事件,常用于控制定時執(zhí)行某些重復的操作,它在運行時是不可見的,具有如下常用屬性:l(1Interval:設置計時器的時間間隔,單位為毫秒。l(2Enabled:設置計時器的有效性,為.T.時表示計時器控件在表單加載時就開始工作,為.F.時掛起計時器的運行。l它的常用事件如下:l(1Timer:當經過Interval屬性指定的毫秒數時觸發(fā)該事件?!纠纠?.6】有一個自由表】有一個自由表zp.dbf),

溫馨提示

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

評論

0/150

提交評論