版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第十五講VisualFoxPro應用基礎面向?qū)ο蟪绦蛟O計表單設計第十五講VisualFoxPro應用基礎面向?qū)ο蟪绦蛟O計1面向?qū)ο蟪绦蛟O計OOP(Object-orientedProgramming)不同于面向過程程序設計,OOP可以利用對象“組裝”程序,每個對象中的代碼對許多編程人員來說是透明的。代碼更精練和較好的復用性(如窗口、按鈕等對象)。程序的構造更為簡單,編程效率較高。面向?qū)ο蟪绦蛟O計OOP(Object-orientedPr2基本術語
1.對象(1)對象對象(Object)是反映客觀事物屬性及行為特征的描述。每個對象都具有描述它的特征的屬性,及附屬于它的行為。在程序設計中,對象是私有數(shù)據(jù)和對這些數(shù)據(jù)進行處理的操作(方法程序)相結(jié)合的程序單元(實體)。在VisualFoxPro應用程序中,窗口、命令按鈕等可以被看成是對象?;拘g語1.對象3基本術語(2)對象的屬性(Property)屬性定義了對象所具有的數(shù)據(jù),它是對象所有特征數(shù)據(jù)的集合。對象的每一種屬性,都是與其它對象加以區(qū)別的特性,都具有一定的含義,并賦予一定的值。屬性值可以在設計階段設置,也可以在運行階段更改。如,具有以下屬性和行為特征:.命令按鈕在窗口的位置;.命令按鈕的標題及命令按鈕的大??;.按動命令按鈕進行什么操作?;拘g語(2)對象的屬性(Property)4基本術語(3)方法程序(Method)方法程序是指對象為實現(xiàn)一定功能而編寫的代碼。方法是附屬于對象的行為和動作。(4)事件(Event)事件是每個對象可能用以識別和響應的某些行為和動作。事件可以由系統(tǒng)引發(fā),比如生成對象時,系統(tǒng)就引發(fā)一個Init事件,對象識別該事件,并執(zhí)行相應的Init事件代碼;事件也可以由用戶引發(fā),如,單擊鼠標就發(fā)生了一個“click”事件,命令按鈕識別該事件并執(zhí)行相應的click事件代碼。在VisualFoxPro系統(tǒng)中,對象可以響應50多種事件。多數(shù)情況下,事件是通過用戶的操作行為引發(fā)的,當事件發(fā)生時,將執(zhí)行包含在事件過程中的全部代碼。(5)類(class)類是具有共同屬性、共同操作性質(zhì)的對象的集合?;拘g語(3)方法程序(Method)5VFP中的類和對象1、類與對象在VisualFoxPro系統(tǒng)中,類就像是一個模板,對象都是由類生成的,類定義了對象所有的屬性、事件和方法,從而決定了對象的屬性和它的行為。對象是類的實例。2、基類(baseclass)基類是VFP預先定義的類?;愑挚梢苑殖扇萜黝惡涂丶?。容器類(Containers)可以容納其它對象,并允許訪問所包含的對象。如表單,自身是一個對象,它又可以把按鈕、編輯框、文本框等放在表單中。P60表2-7列出了基類中主要的容器類。VFP中的類和對象1、類與對象6VFP中的類和對象
控件類不能容納其它對象,它沒有容器類靈活。如文本控件自身是一個對象,在文本控件中不可放其它對象。由控件類創(chuàng)造的對象,是不能單獨使用和修改的,它只能做為容器類中的一個元素,通過由容器類創(chuàng)造的對象修改或使用。P60表2-8列出了常用的控件類。3、子類(subclass)以某個類的定義為起點創(chuàng)建的新類稱為子類,前者成為父類。子類將繼承父類的全部特征,包括對父類所做的任何修改。VFP中的類和對象控件類不能容納其它對象,它沒有容7類的特征類具有封裝性和繼承性等特性。封裝性(Encapsulation)是指類的內(nèi)部信息對用戶是隱蔽的。由于類具有封裝性,因此不必被類的概念或類的抽象所困擾。在使用類時,用戶不需熟悉對象內(nèi)部的復雜性,只需掌握類的使用方法,使應用程序的可用性大大提高了。類的特征類具有封裝性和繼承性等特性。8類的特征繼承性(Inheritance)指通過繼承關系利用已有的類構造新類。有了類的繼承,用戶在編寫程序時,可以把具有普遍意義的類通過繼承引用到程序中,從而減少代碼的編寫工作。方法屬性繼承的方法、屬性添加的方法、屬性類的特征繼承性(Inheritance)指通過繼承關系利用9對象的操作對象屬性的設置通過屬性窗口在程序中設置屬性的一般格式:表單名.對象名.屬性名=屬性值常見的屬性有標題(Caption),名稱(Name),背景色(Backcolor),字體大小(Fontsize),是否可見(Visible)等。對象的關鍵字THISFORMSET表示當前表單集THISFORM表示當前表單THIS表示當前對象對象引用格式引用關鍵字.被引用對象|對象的屬性|事件|方法程序?qū)ο蟮牟僮鲗ο髮傩缘脑O置10對象的操作對象的事件單擊(click),雙擊(Dblclick),裝入(load),移動鼠標(Mousemove),右擊(Rightclick),用鼠標或鍵盤交互改變控件值(InteractiveChange)事件過程事件被觸發(fā)后,響應該事件后所執(zhí)行的程序代碼為事件過程對象的方法用于完成某種特定的功能,被封裝在不同的對象中。常用的表單方法:Release:將表單從內(nèi)存中釋放Refresh:刷新表單Show:顯示表單Hide:隱藏表單Setfocus:讓對象獲得焦點,使其成為活動對象。對象的操作對象的事件11對象的操作對象的引用實例THISFORMSET.Form1.Cmd1.Caption=“關閉”將本表單集的名為From1的表單中的Comd1對象的標題(Caption)屬性設為“關閉”THISFORM.Cmd1.Caption=“關閉”將本表單的名為Comd1對象的標題(Caption)屬性設為“關閉”THIS.Caption=“關閉”將當前對象的標題(Caption)屬性設為“關閉”THIS.Parent.BackColor=RGB(192,0,0)將本對象的父對象的背景色設置為紅色。THISFORM.Refresh刷新當前表單對象的操作對象的引用實例12第五章表單設計
表單(Form)是應用程序的重要組成部分,是真正面向?qū)ο蟮木幊坦ぞ?。表單設計充分體現(xiàn)了VFP面向?qū)ο蟪绦蛟O計的風格和可視化設計的精髓所在。表單在系統(tǒng)中是用戶的主要界面,也有人把它稱為屏幕(Screen)或窗口。但它不是一個普通的窗口,因為其中的控件可以有屬性、事件和方法,并且表單和表單集本身也是有屬性、事件和方法的編程對象。
在VisualFoxPro系統(tǒng)中,表單擁有多個屬性,可以響應多種事件、實現(xiàn)多種方法操作。在面向?qū)ο蟮某绦蛟O計中,兩個最基本的可視對象類型是容器和控件。表單就是一個容器,它可以容納多個控件。第五章表單設計13表單及其控件對象圖示表單編輯框標簽文本框列表框圖像檢查框單選鈕命令按鈕組表單及其控件對象圖示表單編輯框標簽文本框列表框圖像檢查框單選145.1表單操作基礎生成表單的方法:使用表單向?qū)褂帽韱卧O計器創(chuàng)建新表單或修改已有表單使用“快速”表單功能,生成一個簡單的表單用createform<表單>.SCX命令保存表單方法(表單文件擴展名為.SCX):文件/保存
CTRL+W關閉表單設計器窗口時保存5.1表單操作基礎生成表單的方法:保存表單方法(表單文15運行表單的方法:單擊表單設計器工具欄或項目管理器的“運行”按鈕使用命令:DOFORM<表單文件名>在未關閉的表單窗口空白處右擊,選擇快捷菜單中的“運行”命令運行表單的方法:16一、單表單向?qū)У幕静襟E如下:[例]為學生表創(chuàng)建一個表單“學生1.SCX”。1.選擇“文件”下拉菜單的“新建”命令,彈出“新建”對話框。2.在“新建”對話框中,選擇“表單”為有效,并單擊“向?qū)А卑粹o,彈出向?qū)нx取對話框。
5.2表單向?qū)б弧伪韱蜗驅(qū)У幕静襟E如下:5.2表單向?qū)?73.在向?qū)нx取對話框中,選取“表單向?qū)А?,單擊“確定”按鈕,彈出表單向?qū)У牡谝徊綄υ捒?4.在步驟1表單向?qū)υ捒蛑?,首先指定用于?chuàng)建表單控制的表或數(shù)據(jù)庫,然后選擇在表單中用到的字段,單擊“下一步”按鈕,彈出表單向?qū)У牡诙綄υ捒颉?.在向?qū)нx取對話框中,選取“表單向?qū)А?,單擊“確定”按鈕185.在步驟2表單向?qū)υ捒蛑?,選擇表單樣式和按鈕類型,單擊“下一步”按鈕,彈出表單向?qū)У牡谌綄υ捒颉?.在步驟3表單向?qū)υ捒蛑?,選擇用于排序的字段(最多為三個字段),然后指定排序的方式(升序或降序),單擊“下一步”按鈕,彈出表單向?qū)У牡谒牟綄υ捒颉?/p>
5.在步驟2表單向?qū)υ捒蛑?,選擇表單樣式和按鈕類型,單擊197.在步驟4表單向?qū)υ捒蛑?,輸入表單的標題,然后選擇保存表單的方式,建議選擇“保存表單并用表單設計器修改表單”,在保存前可以用“預覽”按鈕查看表單運行的效果,最后單擊完成彈出一保存對話框,用于選擇表單的存放路徑和輸入表單的文件名。7.在步驟4表單向?qū)υ捒蛑?,輸入表單的標題,然后選擇保存表20退出表單:點擊退出表單按紐重新打開表單:文件/打開/表單MODIFYFORM<表單>.SCX運行表單:表單/執(zhí)行表單DOFORM<表單>.SCX退出表單:點擊退出表單按紐21二、為多個表創(chuàng)建表單向?qū)Вㄒ粚Χ啾韱蜗驅(qū)В┮粚Χ啾韱蜗驅(qū)菍τ泄沧侄蔚亩鄠€表(至少是兩個)進行操作,從多個表中選取部分字段進行顯示。[例]建立同時操作學生表和學生選課表這2張表的表單其基本步驟如下:1.選擇“文件”下拉菜單的“新建”命令,彈出新建對話框。2.在“新建”對話框中,選擇“表單”為有效,并單擊“表單向?qū)А卑粹o,彈出向?qū)нx取對話框。二、為多個表創(chuàng)建表單向?qū)Вㄒ粚Χ啾韱蜗驅(qū)В?.選擇“文件”223.在向?qū)нx取對話框中,選取“一對多表單”,并單擊確定按鈕,彈出表單向?qū)У牡谝徊綄υ捒颉?.在步驟1一對多表單向?qū)υ捒蛑?,首先指定一對多表單的父表,然后選擇在表單中用到的字段,單擊“下一步”按鈕,彈出表單向?qū)У牡诙綄υ捒颉?/p>
5.在步驟2一對多表單向?qū)υ捒蛑?,首先指定一對多表單的子表,然后選擇在表單中用到的字段,單擊“下一步”按鈕,彈出表單向?qū)У牡谌綄υ捒颉?.在向?qū)нx取對話框中,選取“一對多表單”,并單擊確定按鈕236.在步驟3一對多表單向?qū)υ捒蛑?,為父表和子表指定關系(指定公共字段),單擊“下一步”按鈕,彈出表單向?qū)У牡谒牟綄υ捒颉?.在步驟3一對多表單向?qū)υ捒蛑?,為父表和子表指定關系(247.在步驟4表單向?qū)υ捒蛑?,選擇表單樣式和按鈕類型,單擊“下一步”按鈕,彈出表單向?qū)У牡谖宀綄υ捒颉?.在步驟5表單向?qū)υ捒蛑?,選擇用于排序的字段(最多為三個字段),然后指定排序的方式(升序或降序),單擊“下一步”按鈕,彈出表單向?qū)У牡诹綄υ捒颉?.在步驟6表單向?qū)υ捒蛑?,輸入表單的名字,然后選擇保存表單的方式,建議選擇“保存表單并修改于表單設計器中”,在保存前可以用“預覽”按鈕查看表單運行的效果,最后單擊完成。7.在步驟4表單向?qū)υ捒蛑?,選擇表單樣式和按鈕類型,單擊255.3表單設計器
VFP除了用表單向?qū)?chuàng)建新表單外,還可通過表單設計器來創(chuàng)建新表單。啟動表單設計器通常有三種方式:在項目管理器中,選擇“表單”后,再選擇“新建”;從“文件”下拉菜單中選擇“新建…”后,選擇“表單”為有效,單擊“新建文件”按鈕;在命令窗口中鍵入命令:CREATFORM<文件名>|?。(其中使用?將彈出一對話框用于選擇表單存放的路徑和表單的文件名)5.3表單設計器VFP除了用表單向?qū)?chuàng)建新表單外,26啟動后的表單設計器的初始界面:第十五講面向?qū)ο蟪绦蛟O計表單設計-數(shù)據(jù)庫原理及應用VISUAL-FOXPRO教案課件27一、設置與表單有關的工具
在“顯示”下拉菜單下選擇“工具欄…”
一、設置與表單有關的工具在“顯示”下拉菜單下選擇“工具欄28常用表單控件
標簽編輯框命令組復選框列表框表格計時器OLE容器控件線條容器超級鏈接選定對象查看類文本框命令按鈕選項組組合框微調(diào)圖像頁框OLE綁定控件形狀生成器鎖定分隔符按鈕鎖定常用表單控件標編輯框命令組復選框列表框表計時器29二、設置表單的數(shù)據(jù)環(huán)境數(shù)據(jù)環(huán)境的設置是通過數(shù)據(jù)環(huán)境設計器來實現(xiàn)的,打開表單的數(shù)據(jù)環(huán)境設計器可以采用以下步驟:在表單上單擊鼠標左鍵,激活該表單,然后單擊鼠標右鍵,系統(tǒng)將彈出快捷菜單;在彈出的快捷菜單中選擇“數(shù)據(jù)環(huán)境”選項,單擊鼠標左鍵,彈出數(shù)據(jù)環(huán)境設計器,在“數(shù)據(jù)環(huán)境菜單”中選擇“添加”,系統(tǒng)將彈出一打開對話框用來選擇要添加的表或視圖二、設置表單的數(shù)據(jù)環(huán)境數(shù)據(jù)環(huán)境的設置是通30三、在表單中添加字段將數(shù)據(jù)環(huán)境中的字段直接拖到表單中。四、調(diào)整控件的位置(1)選定單個控件:單擊(2)選定多個:按下Shift+單擊(3)取消:Shift+單擊該對象(4)移動控件(5)改變控件大?。?)刪除對象:編輯/清除或DEL鍵(7)復制對象:編輯/復制/粘貼三、在表單中添加字段四、調(diào)整控件的位置31五、其它功能在表單上顯示網(wǎng)格線:顯示/網(wǎng)格線鼠標操作時使控件對齊格線:格式/對齊格線控件布局格式化:使選定的控件居中、對齊等。調(diào)整Tab鍵次序:工具/選項/“表單”選項卡/“Tab鍵次序”組合框中選定“交互”或“按列表”/顯示/按Tab鍵次序五、其它功能32六、在表單中添加對象1.引用包容對象在VFP,由于容器對象的存在,對象可以嵌套。2.設置屬性值格式如下:Parent.Object.Property=Value.3.調(diào)用方法格式如下:Parent.Object.Method六、在表單中添加對象33例:用不同的方法向表單中添加“學號”和“姓名”字段將“學生”表添加到數(shù)據(jù)環(huán)境中,單擊“表單控件”工具欄上“文本框”按鈕,在表單合適位置單擊建立名為“Text1”的文本框?qū)ο?,在屬性窗口“?shù)據(jù)”選項卡選取“ControlSource”,單擊屬性設置框右邊的下箭頭,選擇“學生.學號”。在Text1對象前建立名為“Lbel1”的標簽對象,在屬性窗口修改它的“Caption”屬性為“學號”。在數(shù)據(jù)環(huán)境設計器窗口將“姓名”字段左拖到表單上Text1對象的下方(設置對象自動與字段關聯(lián))。運行表單例:用不同的方法向表單中添加“學號”和“姓名”字段將“學生”34§5.4表單控件使用表單控件是表單設計的基礎,一個表單通常是由多個表單控件組成的。本節(jié)將介紹表單控件的常用屬性?!?.4表單控件使用表單控件是表單35標簽(Label):是一圖形控件,用于顯示文本信息。屬性功能默認值備注Autosize根據(jù)內(nèi)容是否自動調(diào)節(jié)大小.F.
Caption在標簽上顯示的內(nèi)容Label1
BackColor標簽的背景顏色192,192,192(在Backstyle=2時不起作用)ForColor標簽內(nèi)容的顏色0,0,0
Left標簽距離表單左邊框的長度
與定時器配合,控制Left或Top能產(chǎn)生動態(tài)效果Top標簽距離表單上邊框的長度
Visable標簽在運行時是否可見.t.
Name引用該對象時所用的名稱Label1
BackStyle指定標簽的背景是否透明1-不透明
Fontname標簽內(nèi)容字體的名字Arial
FontSize標簽內(nèi)容字體的大小9
標簽(Label):是一圖形控件,用于顯示文本信息。屬性36例:在表單上創(chuàng)建一個標簽,如下圖所示。步驟:打開表單設計器,創(chuàng)建一個“標簽”Label1和“命令按鈕”command1。在屬性窗口修改Label1的屬性如下:
Caption:歡迎使用VisualFoxpro6.0FontName:隸書
FontSize:28WordWrap(折行):.T.
AutoSize(自動大?。?T.在屬性窗口修改Command1的屬性如下:
Caption:關閉例:在表單上創(chuàng)建一個標簽,如下圖所示。步驟:37編寫Command1的Click事件代碼雙擊Command1按鈕,打開事件代碼窗口,寫完程序語句后關閉。運行表單。編寫Command1的Click事件代碼運行表單。38文本框(TextBox)
文本框用于顯示和編輯一個變量或字段的值。一、文本框常用屬性屬性功能控制源(ControlSource)指定與對象(變量或數(shù)據(jù)庫字段)綁定的數(shù)據(jù)源值(Value)文本框的值,并在框中顯示設置焦點(SetFocus)將焦點放在控件上二、文本框生成器使用文本框生成器可以非常方便的為控件設置常用的的屬性。打開生成器方法:鼠標指向?qū)ο笥覔?,從彈出的快捷菜單中選定生成器命令生成器只能設置一些常用屬性,并不是所有對象都有生成器。文本框(TextBox)屬性功能控制源(ControlSou39格式選項卡:主要供用戶設定文本框的各種格式,以及輸入掩碼的類型。文本框是否可用,Enabled選定時,框中值只能由字母組成,相當Format值為A,只用于字符型數(shù)據(jù)。運行表單時,框中內(nèi)容無法修改,Readonly。當框中獲得焦點,框中數(shù)據(jù)將被選定,相當Format值為K。當失去焦點時,框中數(shù)據(jù)是否保持選中狀態(tài)。只用于數(shù)值型數(shù)據(jù),選定時,顯示小數(shù)點左邊零。相當InputMask格式選項卡:主要供用戶設定文本框的各種格式,以及輸入掩碼的類40樣式選項卡:主要用于設置文本框的外觀、邊框和字符的對齊方式。相當SpecialEffect值為3D相當BorderStyle值為1相當Alignment的值為3樣式選項卡:主要用于設置文本框的外觀、邊框和字符的對齊方式。41值選項卡相當ControlSource值選項卡相當ControlSource42編輯框(EditBox)功能:為用戶提供一個文本編輯器,主要用來處理備注類型字段。屬性功能默認值控制源(ControlSource)指定與對象綁定的數(shù)據(jù)源滾動條(ScrollBars)為用戶設置滾動條2編輯框(EditBox)屬性功能默認值控制源(Control43例:創(chuàng)建一個文本框用來接收用戶輸入口令,并檢查用戶輸入口令與預設口令“12345”是否一致。步驟:打開表單設計器,創(chuàng)建一個表單,在表單中建一個文本框Text1和兩個標簽Label1、Label2,一個命令按鈕Command1設置對象屬性:
Label1caption:請輸入口令fontname:黑體
fontsize:14autosize:.t.Fontbold:.t.
Label2caption:(空)fontname:楷體autosize:.t.
Fontsize:20fontbold:.t.
Text1passwordchar:*value:(無)
Command1caption:關閉例:創(chuàng)建一個文本框用來接收用戶輸入口令,并檢查用戶輸入口令44編寫程序代碼Text1的Valid事件代碼:Command1的Click代碼:編寫程序代碼Command1的Click代碼:45命令按鈕屬性功能默認值Caption設置命令按鈕標題Command1Name對象引用名Command1Picture在命令按鈕上顯示圖形ShowTips鼠標指向按鈕時是否出現(xiàn)提示.T.ToolTipText提示文本顯示內(nèi)容專門用于觸發(fā)一個事件完成一個動作。Click事件單擊按鈕時所執(zhí)行的操作。如:Thisform.Release(關閉表單)命令按鈕屬性功能默認值Caption設置命令按鈕標題Comm46命令按鈕組命令按鈕組與組內(nèi)的各個命令按鈕都有自已的屬性、事件和方法。命令按鈕組的Value屬性單一某個按鈕時,組控件獲得一個數(shù)值或字符串。Click事件
單擊命令按鈕組內(nèi)的空白處,組控件的Click事件被觸發(fā),否則觸發(fā)所單擊的命令按鈕的Click事件。命令按鈕組473.容器中對象的引用如:引用名為CommandGroup1的第一個和第二個命令按鈕。Thisform.CommandGroup1.Command1(絕對引用)Thisform.CommandGroup1.Command2(絕對引用)This.Command1(相對引用)4.容器及其對象的編輯用鼠標選定容器就能對容器進行編輯;右擊容器,在彈出的快捷菜單中選擇“編輯”命令,容器周圍出現(xiàn)虛框,可以編輯容器中對象。3.容器中對象的引用48例:在表單上建立一個命令按鈕組包含兩個按鈕,一個按鈕用來向前移動記錄指針,另一個用來向后移動記錄指針。步驟:單擊“表單控件”工具欄上的“命令按鈕組”,在表單上創(chuàng)建一個命令按鈕組。將Command1和Command2的Caption屬性分別設為“上一條”和“下一條”。將“學生”表添加到數(shù)據(jù)環(huán)境中。例:在表單上建立一個命令按鈕組包含兩個按鈕,一個按鈕用來向前49編寫命令按鈕組CommandGroup1的Click事件代碼。編寫命令按鈕組CommandGroup1的Click事件代碼50第十五講VisualFoxPro應用基礎面向?qū)ο蟪绦蛟O計表單設計第十五講VisualFoxPro應用基礎面向?qū)ο蟪绦蛟O計51面向?qū)ο蟪绦蛟O計OOP(Object-orientedProgramming)不同于面向過程程序設計,OOP可以利用對象“組裝”程序,每個對象中的代碼對許多編程人員來說是透明的。代碼更精練和較好的復用性(如窗口、按鈕等對象)。程序的構造更為簡單,編程效率較高。面向?qū)ο蟪绦蛟O計OOP(Object-orientedPr52基本術語
1.對象(1)對象對象(Object)是反映客觀事物屬性及行為特征的描述。每個對象都具有描述它的特征的屬性,及附屬于它的行為。在程序設計中,對象是私有數(shù)據(jù)和對這些數(shù)據(jù)進行處理的操作(方法程序)相結(jié)合的程序單元(實體)。在VisualFoxPro應用程序中,窗口、命令按鈕等可以被看成是對象?;拘g語1.對象53基本術語(2)對象的屬性(Property)屬性定義了對象所具有的數(shù)據(jù),它是對象所有特征數(shù)據(jù)的集合。對象的每一種屬性,都是與其它對象加以區(qū)別的特性,都具有一定的含義,并賦予一定的值。屬性值可以在設計階段設置,也可以在運行階段更改。如,具有以下屬性和行為特征:.命令按鈕在窗口的位置;.命令按鈕的標題及命令按鈕的大??;.按動命令按鈕進行什么操作?;拘g語(2)對象的屬性(Property)54基本術語(3)方法程序(Method)方法程序是指對象為實現(xiàn)一定功能而編寫的代碼。方法是附屬于對象的行為和動作。(4)事件(Event)事件是每個對象可能用以識別和響應的某些行為和動作。事件可以由系統(tǒng)引發(fā),比如生成對象時,系統(tǒng)就引發(fā)一個Init事件,對象識別該事件,并執(zhí)行相應的Init事件代碼;事件也可以由用戶引發(fā),如,單擊鼠標就發(fā)生了一個“click”事件,命令按鈕識別該事件并執(zhí)行相應的click事件代碼。在VisualFoxPro系統(tǒng)中,對象可以響應50多種事件。多數(shù)情況下,事件是通過用戶的操作行為引發(fā)的,當事件發(fā)生時,將執(zhí)行包含在事件過程中的全部代碼。(5)類(class)類是具有共同屬性、共同操作性質(zhì)的對象的集合?;拘g語(3)方法程序(Method)55VFP中的類和對象1、類與對象在VisualFoxPro系統(tǒng)中,類就像是一個模板,對象都是由類生成的,類定義了對象所有的屬性、事件和方法,從而決定了對象的屬性和它的行為。對象是類的實例。2、基類(baseclass)基類是VFP預先定義的類。基類又可以分成容器類和控件類。容器類(Containers)可以容納其它對象,并允許訪問所包含的對象。如表單,自身是一個對象,它又可以把按鈕、編輯框、文本框等放在表單中。P60表2-7列出了基類中主要的容器類。VFP中的類和對象1、類與對象56VFP中的類和對象
控件類不能容納其它對象,它沒有容器類靈活。如文本控件自身是一個對象,在文本控件中不可放其它對象。由控件類創(chuàng)造的對象,是不能單獨使用和修改的,它只能做為容器類中的一個元素,通過由容器類創(chuàng)造的對象修改或使用。P60表2-8列出了常用的控件類。3、子類(subclass)以某個類的定義為起點創(chuàng)建的新類稱為子類,前者成為父類。子類將繼承父類的全部特征,包括對父類所做的任何修改。VFP中的類和對象控件類不能容納其它對象,它沒有容57類的特征類具有封裝性和繼承性等特性。封裝性(Encapsulation)是指類的內(nèi)部信息對用戶是隱蔽的。由于類具有封裝性,因此不必被類的概念或類的抽象所困擾。在使用類時,用戶不需熟悉對象內(nèi)部的復雜性,只需掌握類的使用方法,使應用程序的可用性大大提高了。類的特征類具有封裝性和繼承性等特性。58類的特征繼承性(Inheritance)指通過繼承關系利用已有的類構造新類。有了類的繼承,用戶在編寫程序時,可以把具有普遍意義的類通過繼承引用到程序中,從而減少代碼的編寫工作。方法屬性繼承的方法、屬性添加的方法、屬性類的特征繼承性(Inheritance)指通過繼承關系利用59對象的操作對象屬性的設置通過屬性窗口在程序中設置屬性的一般格式:表單名.對象名.屬性名=屬性值常見的屬性有標題(Caption),名稱(Name),背景色(Backcolor),字體大小(Fontsize),是否可見(Visible)等。對象的關鍵字THISFORMSET表示當前表單集THISFORM表示當前表單THIS表示當前對象對象引用格式引用關鍵字.被引用對象|對象的屬性|事件|方法程序?qū)ο蟮牟僮鲗ο髮傩缘脑O置60對象的操作對象的事件單擊(click),雙擊(Dblclick),裝入(load),移動鼠標(Mousemove),右擊(Rightclick),用鼠標或鍵盤交互改變控件值(InteractiveChange)事件過程事件被觸發(fā)后,響應該事件后所執(zhí)行的程序代碼為事件過程對象的方法用于完成某種特定的功能,被封裝在不同的對象中。常用的表單方法:Release:將表單從內(nèi)存中釋放Refresh:刷新表單Show:顯示表單Hide:隱藏表單Setfocus:讓對象獲得焦點,使其成為活動對象。對象的操作對象的事件61對象的操作對象的引用實例THISFORMSET.Form1.Cmd1.Caption=“關閉”將本表單集的名為From1的表單中的Comd1對象的標題(Caption)屬性設為“關閉”THISFORM.Cmd1.Caption=“關閉”將本表單的名為Comd1對象的標題(Caption)屬性設為“關閉”THIS.Caption=“關閉”將當前對象的標題(Caption)屬性設為“關閉”THIS.Parent.BackColor=RGB(192,0,0)將本對象的父對象的背景色設置為紅色。THISFORM.Refresh刷新當前表單對象的操作對象的引用實例62第五章表單設計
表單(Form)是應用程序的重要組成部分,是真正面向?qū)ο蟮木幊坦ぞ?。表單設計充分體現(xiàn)了VFP面向?qū)ο蟪绦蛟O計的風格和可視化設計的精髓所在。表單在系統(tǒng)中是用戶的主要界面,也有人把它稱為屏幕(Screen)或窗口。但它不是一個普通的窗口,因為其中的控件可以有屬性、事件和方法,并且表單和表單集本身也是有屬性、事件和方法的編程對象。
在VisualFoxPro系統(tǒng)中,表單擁有多個屬性,可以響應多種事件、實現(xiàn)多種方法操作。在面向?qū)ο蟮某绦蛟O計中,兩個最基本的可視對象類型是容器和控件。表單就是一個容器,它可以容納多個控件。第五章表單設計63表單及其控件對象圖示表單編輯框標簽文本框列表框圖像檢查框單選鈕命令按鈕組表單及其控件對象圖示表單編輯框標簽文本框列表框圖像檢查框單選645.1表單操作基礎生成表單的方法:使用表單向?qū)褂帽韱卧O計器創(chuàng)建新表單或修改已有表單使用“快速”表單功能,生成一個簡單的表單用createform<表單>.SCX命令保存表單方法(表單文件擴展名為.SCX):文件/保存
CTRL+W關閉表單設計器窗口時保存5.1表單操作基礎生成表單的方法:保存表單方法(表單文65運行表單的方法:單擊表單設計器工具欄或項目管理器的“運行”按鈕使用命令:DOFORM<表單文件名>在未關閉的表單窗口空白處右擊,選擇快捷菜單中的“運行”命令運行表單的方法:66一、單表單向?qū)У幕静襟E如下:[例]為學生表創(chuàng)建一個表單“學生1.SCX”。1.選擇“文件”下拉菜單的“新建”命令,彈出“新建”對話框。2.在“新建”對話框中,選擇“表單”為有效,并單擊“向?qū)А卑粹o,彈出向?qū)нx取對話框。
5.2表單向?qū)б?、單表單向?qū)У幕静襟E如下:5.2表單向?qū)?73.在向?qū)нx取對話框中,選取“表單向?qū)А?,單擊“確定”按鈕,彈出表單向?qū)У牡谝徊綄υ捒?4.在步驟1表單向?qū)υ捒蛑?,首先指定用于?chuàng)建表單控制的表或數(shù)據(jù)庫,然后選擇在表單中用到的字段,單擊“下一步”按鈕,彈出表單向?qū)У牡诙綄υ捒颉?.在向?qū)нx取對話框中,選取“表單向?qū)А?,單擊“確定”按鈕685.在步驟2表單向?qū)υ捒蛑?,選擇表單樣式和按鈕類型,單擊“下一步”按鈕,彈出表單向?qū)У牡谌綄υ捒颉?.在步驟3表單向?qū)υ捒蛑?,選擇用于排序的字段(最多為三個字段),然后指定排序的方式(升序或降序),單擊“下一步”按鈕,彈出表單向?qū)У牡谒牟綄υ捒颉?/p>
5.在步驟2表單向?qū)υ捒蛑?,選擇表單樣式和按鈕類型,單擊697.在步驟4表單向?qū)υ捒蛑?,輸入表單的標題,然后選擇保存表單的方式,建議選擇“保存表單并用表單設計器修改表單”,在保存前可以用“預覽”按鈕查看表單運行的效果,最后單擊完成彈出一保存對話框,用于選擇表單的存放路徑和輸入表單的文件名。7.在步驟4表單向?qū)υ捒蛑?,輸入表單的標題,然后選擇保存表70退出表單:點擊退出表單按紐重新打開表單:文件/打開/表單MODIFYFORM<表單>.SCX運行表單:表單/執(zhí)行表單DOFORM<表單>.SCX退出表單:點擊退出表單按紐71二、為多個表創(chuàng)建表單向?qū)Вㄒ粚Χ啾韱蜗驅(qū)В┮粚Χ啾韱蜗驅(qū)菍τ泄沧侄蔚亩鄠€表(至少是兩個)進行操作,從多個表中選取部分字段進行顯示。[例]建立同時操作學生表和學生選課表這2張表的表單其基本步驟如下:1.選擇“文件”下拉菜單的“新建”命令,彈出新建對話框。2.在“新建”對話框中,選擇“表單”為有效,并單擊“表單向?qū)А卑粹o,彈出向?qū)нx取對話框。二、為多個表創(chuàng)建表單向?qū)Вㄒ粚Χ啾韱蜗驅(qū)В?.選擇“文件”723.在向?qū)нx取對話框中,選取“一對多表單”,并單擊確定按鈕,彈出表單向?qū)У牡谝徊綄υ捒颉?.在步驟1一對多表單向?qū)υ捒蛑?,首先指定一對多表單的父表,然后選擇在表單中用到的字段,單擊“下一步”按鈕,彈出表單向?qū)У牡诙綄υ捒颉?/p>
5.在步驟2一對多表單向?qū)υ捒蛑?,首先指定一對多表單的子表,然后選擇在表單中用到的字段,單擊“下一步”按鈕,彈出表單向?qū)У牡谌綄υ捒颉?.在向?qū)нx取對話框中,選取“一對多表單”,并單擊確定按鈕736.在步驟3一對多表單向?qū)υ捒蛑?,為父表和子表指定關系(指定公共字段),單擊“下一步”按鈕,彈出表單向?qū)У牡谒牟綄υ捒颉?.在步驟3一對多表單向?qū)υ捒蛑?,為父表和子表指定關系(747.在步驟4表單向?qū)υ捒蛑?,選擇表單樣式和按鈕類型,單擊“下一步”按鈕,彈出表單向?qū)У牡谖宀綄υ捒颉?.在步驟5表單向?qū)υ捒蛑?,選擇用于排序的字段(最多為三個字段),然后指定排序的方式(升序或降序),單擊“下一步”按鈕,彈出表單向?qū)У牡诹綄υ捒颉?.在步驟6表單向?qū)υ捒蛑?,輸入表單的名字,然后選擇保存表單的方式,建議選擇“保存表單并修改于表單設計器中”,在保存前可以用“預覽”按鈕查看表單運行的效果,最后單擊完成。7.在步驟4表單向?qū)υ捒蛑?,選擇表單樣式和按鈕類型,單擊755.3表單設計器
VFP除了用表單向?qū)?chuàng)建新表單外,還可通過表單設計器來創(chuàng)建新表單。啟動表單設計器通常有三種方式:在項目管理器中,選擇“表單”后,再選擇“新建”;從“文件”下拉菜單中選擇“新建…”后,選擇“表單”為有效,單擊“新建文件”按鈕;在命令窗口中鍵入命令:CREATFORM<文件名>|?。(其中使用?將彈出一對話框用于選擇表單存放的路徑和表單的文件名)5.3表單設計器VFP除了用表單向?qū)?chuàng)建新表單外,76啟動后的表單設計器的初始界面:第十五講面向?qū)ο蟪绦蛟O計表單設計-數(shù)據(jù)庫原理及應用VISUAL-FOXPRO教案課件77一、設置與表單有關的工具
在“顯示”下拉菜單下選擇“工具欄…”
一、設置與表單有關的工具在“顯示”下拉菜單下選擇“工具欄78常用表單控件
標簽編輯框命令組復選框列表框表格計時器OLE容器控件線條容器超級鏈接選定對象查看類文本框命令按鈕選項組組合框微調(diào)圖像頁框OLE綁定控件形狀生成器鎖定分隔符按鈕鎖定常用表單控件標編輯框命令組復選框列表框表計時器79二、設置表單的數(shù)據(jù)環(huán)境數(shù)據(jù)環(huán)境的設置是通過數(shù)據(jù)環(huán)境設計器來實現(xiàn)的,打開表單的數(shù)據(jù)環(huán)境設計器可以采用以下步驟:在表單上單擊鼠標左鍵,激活該表單,然后單擊鼠標右鍵,系統(tǒng)將彈出快捷菜單;在彈出的快捷菜單中選擇“數(shù)據(jù)環(huán)境”選項,單擊鼠標左鍵,彈出數(shù)據(jù)環(huán)境設計器,在“數(shù)據(jù)環(huán)境菜單”中選擇“添加”,系統(tǒng)將彈出一打開對話框用來選擇要添加的表或視圖二、設置表單的數(shù)據(jù)環(huán)境數(shù)據(jù)環(huán)境的設置是通80三、在表單中添加字段將數(shù)據(jù)環(huán)境中的字段直接拖到表單中。四、調(diào)整控件的位置(1)選定單個控件:單擊(2)選定多個:按下Shift+單擊(3)取消:Shift+單擊該對象(4)移動控件(5)改變控件大小(6)刪除對象:編輯/清除或DEL鍵(7)復制對象:編輯/復制/粘貼三、在表單中添加字段四、調(diào)整控件的位置81五、其它功能在表單上顯示網(wǎng)格線:顯示/網(wǎng)格線鼠標操作時使控件對齊格線:格式/對齊格線控件布局格式化:使選定的控件居中、對齊等。調(diào)整Tab鍵次序:工具/選項/“表單”選項卡/“Tab鍵次序”組合框中選定“交互”或“按列表”/顯示/按Tab鍵次序五、其它功能82六、在表單中添加對象1.引用包容對象在VFP,由于容器對象的存在,對象可以嵌套。2.設置屬性值格式如下:Parent.Object.Property=Value.3.調(diào)用方法格式如下:Parent.Object.Method六、在表單中添加對象83例:用不同的方法向表單中添加“學號”和“姓名”字段將“學生”表添加到數(shù)據(jù)環(huán)境中,單擊“表單控件”工具欄上“文本框”按鈕,在表單合適位置單擊建立名為“Text1”的文本框?qū)ο?,在屬性窗口“?shù)據(jù)”選項卡選取“ControlSource”,單擊屬性設置框右邊的下箭頭,選擇“學生.學號”。在Text1對象前建立名為“Lbel1”的標簽對象,在屬性窗口修改它的“Caption”屬性為“學號”。在數(shù)據(jù)環(huán)境設計器窗口將“姓名”字段左拖到表單上Text1對象的下方(設置對象自動與字段關聯(lián))。運行表單例:用不同的方法向表單中添加“學號”和“姓名”字段將“學生”84§5.4表單控件使用表單控件是表單設計的基礎,一個表單通常是由多個表單控件組成的。本節(jié)將介紹表單控件的常用屬性。§5.4表單控件使用表單控件是表單85標簽(Label):是一圖形控件,用于顯示文本信息。屬性功能默認值備注Autosize根據(jù)內(nèi)容是否自動調(diào)節(jié)大小.F.
Caption在標簽上顯示的內(nèi)容Label1
BackColor標簽的背景顏色192,192,192(在Backstyle=2時不起作用)ForColor標簽內(nèi)容的顏色0,0,0
Left標簽距離表單左邊框的長度
與定時器配合,控制Left或Top能產(chǎn)生動態(tài)效果Top標簽距離表單上邊框的長度
Visable標簽在運行時是否可見.t.
Name引用該對象時所用的名稱Label1
BackStyle指定標簽的背景是否透明1-不透明
Fontname標簽內(nèi)容字體的名字Arial
FontSize標簽內(nèi)容字體的大小9
標簽(Label):是一圖形控件,用于顯示文本信息。屬性86例:在表單上創(chuàng)建一個標簽,如下圖所示。步驟:打開表單設計器,創(chuàng)建一個“標簽”Label1和“命令按鈕”command1。在屬性窗口修改Label1的屬性如下:
Caption:歡迎使用VisualFoxpro6.0FontName:隸書
FontSize:28WordWrap(折行):.T.
AutoSize(自動大?。?T.在屬性窗口修改Command1的屬性如下:
Caption:關閉例:在表單上創(chuàng)建一個標簽,如下圖所示。步驟:87編寫Command1的Click事件代碼雙擊Command1按鈕,打開事件代碼窗口,寫完程序語句后關閉。運行表單。編寫Command1的Click事件代碼運行表單。88文本框(TextBox)
文本框用于顯示和編輯一個變量或字段的值。一、文本框常用屬性屬性功能控制源(ControlSource)指定與對象(變量或數(shù)據(jù)庫字段)綁定的數(shù)據(jù)源值(Value)文本框的值,并在框中顯示設置焦點(SetFocus)將焦點放在控件上二、文本框生成器使用文本框生成器可以非常方便的為控件設置常用的的屬性。打開生成器方法:鼠標指向?qū)ο笥覔簦瑥膹棾龅目旖莶藛沃羞x定生成器命令生成器只能設置一些常用屬性,并不是所有對象都有生成器。文本框(TextBox)屬性功能控制源(ControlSou89格式選項卡:主要供用戶設定文本框的各種格式,以及輸入掩碼的類型。文本框是否可用,Enabled選定時,框中值
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 共青科技職業(yè)學院《高級商務英語(一)》2023-2024學年第一學期期末試卷
- 《知識經(jīng)濟時代》課件
- 2022年一級建造師-管理-李娜章節(jié)練習題講義合集(含答案解析)
- 贛南科技學院《大數(shù)據(jù)技術基礎(計算模型)》2023-2024學年第一學期期末試卷
- 贛東學院《翻譯概論》2023-2024學年第一學期期末試卷
- 甘肅中醫(yī)藥大學《土木工程結(jié)構試驗與檢測》2023-2024學年第一學期期末試卷
- 語文培訓機構課件
- 七年級科學上冊第1章科學入門第3節(jié)科學觀察第1課時教案新版浙教版
- 七年級道德與法治上冊第四單元生命的思考第十課綻放生命之花第1課時感受生命的意義教案新人教版
- 三年級數(shù)學上冊五周長什么是周長說課稿北師大版
- 2024年度員工試用期勞動合同模板(含保密條款)3篇
- 2024-2030年全球與中國汽車音頻DSP芯片組市場銷售前景及競爭策略分析報告
- 機關事業(yè)單位財務管理制度(六篇)
- 2025禮品定制合同范本
- 醫(yī)院消毒隔離制度范文(2篇)
- 2024年01月11026經(jīng)濟學(本)期末試題答案
- 烘干煤泥合同范例
- 人教版六年級上冊數(shù)學第八單元數(shù)學廣角數(shù)與形單元試題含答案
- 2025年“三基”培訓計劃
- 第20課 北洋軍閥統(tǒng)治時期的政治、經(jīng)濟與文化 教案
- 叉車租賃合同模板
評論
0/150
提交評論