數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計(jì)、開發(fā)與實(shí)現(xiàn)-基于Visual FoxPro 課件 ch07表單設(shè)計(jì)_第1頁
數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計(jì)、開發(fā)與實(shí)現(xiàn)-基于Visual FoxPro 課件 ch07表單設(shè)計(jì)_第2頁
數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計(jì)、開發(fā)與實(shí)現(xiàn)-基于Visual FoxPro 課件 ch07表單設(shè)計(jì)_第3頁
數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計(jì)、開發(fā)與實(shí)現(xiàn)-基于Visual FoxPro 課件 ch07表單設(shè)計(jì)_第4頁
數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計(jì)、開發(fā)與實(shí)現(xiàn)-基于Visual FoxPro 課件 ch07表單設(shè)計(jì)_第5頁
已閱讀5頁,還剩123頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第七章表單設(shè)計(jì)普通高等教育“十三五”規(guī)劃教材數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計(jì)、開發(fā)與實(shí)現(xiàn)——基于VisualFoxPro01表單基礎(chǔ)PARTONE1.基本概念1對象對象是客觀世界存在的具體事物。在VFP中,表單及各種控件都是對象。每個(gè)對象都有自己的屬性、事件和方法。表單程序設(shè)計(jì)實(shí)際上就是設(shè)計(jì)和使用對象。2VFP基礎(chǔ)類VFP基礎(chǔ)類主要包括表單和各種常用的基本控件,表7-1列出了VFP的基礎(chǔ)類。VFP基礎(chǔ)類可分為兩部分:容器類和控件類。容器類的實(shí)例稱為容器對象,控件類的實(shí)例稱為控件對象。VFP常用容器及容器包含的對象如表7-2所示。1.基本概念3對象的屬性、方法、事件1)對象屬性對象屬性用于描述對象特征,不同對象可以通過不同的屬性來區(qū)分,常用的對象屬性有名稱、標(biāo)題、可見性、可用性等。通過設(shè)置對象的屬性,可定義對象的外觀或行為。2)對象方法對象方法用于描述對象的行為,與子程序類似,用于執(zhí)行特定操作,其語法格式如下:3)對象事件事件是指VFP預(yù)先定義好的、能夠被對象識別的操作。例如,單擊鼠標(biāo)、雙擊鼠標(biāo)、按鍵盤上的鍵等都是事件。每個(gè)對象都有一組可以識別的事件,如初始化、單擊、按回車鍵等事件。事件是VFP預(yù)先定義好的,事件過程代碼則由用戶編寫。因此,完成表單設(shè)計(jì)的主要任務(wù)就是界面設(shè)計(jì)和代碼編寫。1.基本概念4表單表單即屏幕界面,是用戶與應(yīng)用系統(tǒng)直接交互的界面。5表單的常用屬性1)NameName屬性表示對象的名稱,表單的默認(rèn)名稱是Form1、Form2Form3等。2)CaptionCaption屬性用于設(shè)置表單標(biāo)題,表單的默認(rèn)標(biāo)題是Form1、Form2、Form3等。注意:不要和Name屬性搞混。一般情況下,任何對象的Name屬性都不做修改。1.基本概念5表單的常用屬性3)VisibleVisible屬性用于設(shè)置表單是否可見,其默認(rèn)值為.T,表示表單可見;屬性值為.F.時(shí),表示不可見。4)WidthWidth屬性用于表示表單寬度的像素值。6表單的常用事件Imit事件:表單的初始化操作通常放在Init事件代碼中。1.基本概念7表單的常用方法1)Setal1方法Setall方法用于將表單某類控件設(shè)置同一屬性值。格式:2)Release方法Release方法用于釋放表單,結(jié)束運(yùn)行。格式:1.基本概念7表單的常用方法3)Refiresh方法Refresh方法用于刷新表單。格式:8數(shù)據(jù)環(huán)境表單的數(shù)據(jù)環(huán)境包含與表單交互作用的表和視圖,以及表單所需要的表與表之間的關(guān)系。數(shù)據(jù)環(huán)境同表單一起保存,在打開或運(yùn)行表單時(shí),自動(dòng)打開表或視圖;在關(guān)閉或釋放表單時(shí),自動(dòng)關(guān)閉相關(guān)表或視圖。1.基本概念9單表表單單表表單文件的數(shù)據(jù)環(huán)境包含一張表。10多表表單多表表單文件的數(shù)據(jù)環(huán)境包含兩張以上的表。1.基本概念11表單設(shè)計(jì)器表單設(shè)計(jì)器是設(shè)計(jì)表單的主要工具,是完成表單界面設(shè)計(jì)的場所。在表單設(shè)計(jì)器中,通過將控件添加到表單中、設(shè)置控件屬性來完成界面設(shè)計(jì)。12相對引用和絕對引用在表單設(shè)計(jì)過程中,需要對表單控件進(jìn)行引用,控件的引用分為絕對引用和相對引用兩類。絕對引用是指從容器的最高層開始引用,本章一般通過當(dāng)前表單(Thisform)開始引用相對引用表示從當(dāng)前對象開始引用,本章一般通過This開始引用。因此,使用相對引用時(shí)一定要特別注意當(dāng)前對象This是哪個(gè)控件。2.表單基本操作1創(chuàng)建表單在VFP中,可以使用表單設(shè)計(jì)器或表單向?qū)?chuàng)建表單。表單文件的擴(kuò)展名為.scx,計(jì)算機(jī)會(huì)產(chǎn)生同名的擴(kuò)展名為.sct的文件,即表單備注文件,二者缺一不可。1)啟動(dòng)表單設(shè)計(jì)器創(chuàng)建表單在項(xiàng)目管理器的“文檔”選項(xiàng)卡中選擇“表單”選項(xiàng)單擊“新建”按鈕?;蛘哌x擇“文件”→“新建”選項(xiàng),彈出“新建”對話框,選中“表單”單選按鈕,單擊“新建文件”按鈕,啟動(dòng)表單設(shè)計(jì)器。2)使用表單向?qū)?chuàng)建表單在項(xiàng)目管理器的“文檔”選項(xiàng)卡中選擇“表單”選項(xiàng),單擊“新建”按鈕,彈出“新建表單”對話框,單擊“表單向?qū)А卑粹o,彈出“向?qū)нx取”對話框,如圖7-1所示。在“向?qū)нx取”對話框的“選擇要使用的向?qū)А绷斜砜蛑须p擊需要使用的“表單向?qū)А保蛘哌x擇“表單向?qū)А边x項(xiàng)后單擊“確定”按鈕,啟動(dòng)表單向?qū)А?.表單基本操作2修改表單如果要修改表單,可以用下列方法啟動(dòng)表單設(shè)計(jì)器。(1)在項(xiàng)目管理器的“文檔”選項(xiàng)卡中選中要修改的表單,單擊“修改”按鈕。(2)選擇“文件”→“打開”選項(xiàng),彈出“打開”對話框,在“查找范圍”下拉列表中選擇表單所在的文件夾,在“文件類型”下拉列表中選擇“表單(*.scx)”選項(xiàng),雙擊需要修改的表單,或者選中表單后單擊“確定”按鈕,啟動(dòng)表單設(shè)計(jì)器。2.表單基本操作3運(yùn)行表單運(yùn)行表單可使用下列方法之一。(1)單擊常用工具欄中的

按鈕。(2)選擇“表單”→“執(zhí)行表單”選項(xiàng)。(3)在表單設(shè)計(jì)器中右擊,在彈出的快捷菜單中選擇“執(zhí)行表單”選項(xiàng)。(4)在項(xiàng)目管理器的“文檔”選項(xiàng)卡中選擇要執(zhí)行的表單,單擊“運(yùn)行”按鈕。(5)選擇“程序”→“運(yùn)行”選項(xiàng),彈出“運(yùn)行”對話框,在“文檔類型”下拉列表中選擇“表單”選項(xiàng),在文件列表框中選中表單后單擊“運(yùn)行”按鈕,即可運(yùn)行表單。2.表單基本操作4在屬性窗口中設(shè)置屬性添加到表單中的控件一般需要設(shè)置相關(guān)屬性,VFP賦予控件相應(yīng)的默認(rèn)屬性值,用戶可以在其屬性窗口中修改控件的屬性值。右擊某控件,即可打開該控件的屬性窗口,包括“全部”“數(shù)據(jù)”“方法程序”“布局”“其他”等選項(xiàng)卡,如圖7-2所示。其中,“數(shù)據(jù)”選項(xiàng)卡列出了控件的所有屬性,“方法程序”選項(xiàng)卡列出了控件的所有方法程序。2.表單基本操作5在事件代碼中設(shè)置屬性1)使用表達(dá)式或函數(shù)設(shè)置屬性格式:例如:這里的Thisform是指當(dāng)前表單。2.表單基本操作5在事件代碼中設(shè)置屬性2)設(shè)置一個(gè)對象的多個(gè)屬性格式:2.表單基本操作6表單控件工具欄表單控件工具欄列出了表單設(shè)計(jì)中可用的控件,如圖7-3所示。本章學(xué)習(xí)的重點(diǎn)就是了解、熟悉這些控件。單擊表單設(shè)計(jì)器工具欄中的

按鈕或選擇“顯示”→“表單工具欄”選項(xiàng),可打開或隱藏表單控件工具欄。單擊表單控件工具欄中的某一控件按鈕,將光標(biāo)移動(dòng)到表單中放置控件的位置并單擊,即可將該控件添加到該位置。2.表單基本操作7啟動(dòng)數(shù)據(jù)環(huán)境設(shè)計(jì)器啟動(dòng)數(shù)據(jù)環(huán)境設(shè)計(jì)器可使用下列方法之一:(1)單擊表單設(shè)計(jì)器中的

按鈕。(2)選擇“顯示”→“數(shù)據(jù)環(huán)境”選項(xiàng)。(3)在表單設(shè)計(jì)器任意位置右擊,在彈出的快捷菜單中選擇“數(shù)據(jù)環(huán)境”選項(xiàng)。2.表單基本操作8在數(shù)據(jù)環(huán)境設(shè)計(jì)器中添加表或在數(shù)據(jù)環(huán)境設(shè)計(jì)器中刪除已有的表(1)右擊數(shù)據(jù)環(huán)境設(shè)計(jì)器的空白處,在彈出的快捷菜單中選擇“添加表”選項(xiàng)。(2)右擊數(shù)據(jù)環(huán)境設(shè)計(jì)器中已有的表,在彈出的快捷菜單中選擇“移去表”選項(xiàng)。9設(shè)置數(shù)據(jù)環(huán)境設(shè)計(jì)器中表的屬性添加到數(shù)據(jù)環(huán)境設(shè)計(jì)器中的表為臨時(shí)表(Cursor)對象,具有自己的屬性、事件和方法。臨時(shí)表的Exclusive屬性用于設(shè)置臨時(shí)表是否獨(dú)占使用如果要通過臨時(shí)表修改數(shù)據(jù),則必須將Exclusive屬性值設(shè)為.T,即以獨(dú)占方式打開原始表。2.表單基本操作10設(shè)置數(shù)據(jù)環(huán)境設(shè)計(jì)器中臨時(shí)表的關(guān)系如果數(shù)據(jù)表已經(jīng)在數(shù)據(jù)庫中添加了永久關(guān)系,則這些關(guān)系會(huì)自動(dòng)添加到數(shù)據(jù)環(huán)境設(shè)計(jì)器中。也可以在數(shù)據(jù)環(huán)境設(shè)計(jì)器中為表添加臨時(shí)關(guān)系,即在數(shù)據(jù)環(huán)境設(shè)計(jì)器中將字段列表框中的字段拖曳到另一個(gè)字段列表框的字段上。如果關(guān)聯(lián)字段沒有創(chuàng)建索引,則VFP會(huì)彈出打開一個(gè)對話框?yàn)槠鋭?chuàng)建索引。兩個(gè)表之間的連接線就代表臨時(shí)關(guān)系。若要?jiǎng)h除關(guān)系,可以選中關(guān)系連接線,并按Delete鍵。11為表單添加字段在數(shù)據(jù)環(huán)境設(shè)計(jì)器中將字段或表拖曳到表單上,VFP就會(huì)自動(dòng)創(chuàng)建相應(yīng)的控件。2.表單基本操作12代碼編輯窗口代碼編輯窗口用于編寫控件的事件過程代碼,如圖7-4所示。3.表單設(shè)計(jì)基本過程表單的設(shè)計(jì)過程一般分為以下3步。(1)根據(jù)任務(wù)選擇合適的對象并放置在表單的合適位置。(2)使用屬性窗口或事件代碼設(shè)置相關(guān)對象的特色屬性,這些屬性通常是靜態(tài)的。(3)根據(jù)操作的需要選擇對象事件并為對象的事件編寫代碼。4.控件的基本操作1選擇控件對于單個(gè)控件,單擊即可將其選中。按住Shift鍵單擊控件,可同時(shí)選中多個(gè)控件,也可拖曳鼠標(biāo)框選控件。2復(fù)制控件選中控件后,先選擇“編輯”→“復(fù)制”選項(xiàng)或按Ctl+C組合鍵復(fù)制控件,再選擇“編輯”→“粘貼”選項(xiàng)或按Ctrl+V組合鍵在表單中粘貼控件。4.控件的基本操作3移動(dòng)控件選中控件后,使用鼠標(biāo)將控件拖曳到合適位置。4刪除控件選中控件后,選擇“編輯”→“剪切”選項(xiàng)或按Ctl+X組合鍵、Delete鍵即可刪除控件。4.控件的基本操作5改變控件大小選中控件,拖曳控件邊框上的控制點(diǎn)即可調(diào)整控件的大小,也可在屬性窗口中設(shè)置Height(高度)、Width(寬度)屬性來調(diào)整控件的大小。6控件布局使用布局工具欄或選擇“格式”菜單中的選項(xiàng)可調(diào)整控件的大小和位置。5.表單數(shù)據(jù)的輸入和輸出1數(shù)據(jù)輸入表單通常使用文本框或其他控件輸入數(shù)據(jù)。文本框控件的Value屬性可返回文本框中輸入的數(shù)據(jù)。例如,用戶可以通過文本框在表單中直接實(shí)現(xiàn)數(shù)據(jù)的輸入,該輸入值被賦給變量Mo。Mo=Thisform.TextlValue該屬性值默認(rèn)是字符型,如果需要輸入其他類型的數(shù)據(jù),則可以使用VAL()、CTOD()等函數(shù)轉(zhuǎn)換數(shù)據(jù)類型。5.表單數(shù)據(jù)的輸入和輸出2數(shù)據(jù)輸出(1)表單中的結(jié)果可以通過標(biāo)簽、文本框等控件輸出。例如,下面的兩個(gè)語句分別將變量No的值通過標(biāo)簽和文本框輸出。Thisform.Labell.Caption=NoThisform.Text2Value-No(2)表單中也常用messagebox0函數(shù)顯示計(jì)算結(jié)果或提示信息,函數(shù)的語法格式如下:6.錯(cuò)誤處理當(dāng)運(yùn)行表單時(shí),如果有錯(cuò)誤,則可以通過以下步驟打開編輯窗口。(1)運(yùn)行表單,彈出錯(cuò)誤提示對話框,如圖7-5所示。“取消”:停止程序運(yùn)行。“掛起”:暫停程序運(yùn)行。“忽略”:忽略錯(cuò)誤繼續(xù)運(yùn)行?!皫椭?顯示幫助信息。6.錯(cuò)誤處理2)單擊“掛起”按鈕,在調(diào)試窗口中選擇“調(diào)試”一“定位修改”選項(xiàng),詢問“取消程序并且從內(nèi)存中移除對象嗎?”,單擊“是”按鈕,分別如圖7-6和圖7-7所示。(3)修改錯(cuò)誤語句,反復(fù)運(yùn)行,直到正確。注意:代碼語句包含的所有符號,包括逗號、引號、括號等都必須是英文狀態(tài)的,如果輸入時(shí)未注意,就會(huì)導(dǎo)致語句出錯(cuò),這也是很多編程者語句出錯(cuò)的原因。02控件對象PARTTWO1.標(biāo)簽控件1案例描述(源程序:CH7-1.scx)[例7.1]設(shè)計(jì)一個(gè)表單文件實(shí)現(xiàn)素?cái)?shù)判斷,表單標(biāo)題為“判斷素?cái)?shù)”,表單通過標(biāo)簽Label1、Label2輸出兩行文本“請輸入任意自然數(shù):”“該數(shù)”,文本為16號、宋體、加粗、居中對齊,如圖7-8所示。1.標(biāo)簽控件2知識鏈接(1)標(biāo)簽圖標(biāo):

。(2)功能:用于顯示較短的固定的文本內(nèi)容。(3)標(biāo)簽的常用屬性:如表7-3所示。1.標(biāo)簽控件3案例實(shí)施①啟動(dòng)表單設(shè)計(jì)器,創(chuàng)建表單CH7-1。②添加控件LabellLabel2,設(shè)置Forml的Caption為“判斷素?cái)?shù)”,Label1Label2的Captior屬性分別為“請輸入任意自然數(shù):”“該數(shù)”,F(xiàn)ontsize為16,F(xiàn)ontbold為.T,Aligment為居中。2.文本框控件1案例描述(源程序:CH7-2.scx)[例7.2]設(shè)計(jì)一個(gè)表單以完成口令判斷,具體要求如下:①表單的標(biāo)題為“口令驗(yàn)證窗口”;②用戶輸入口令時(shí),表單的顯示內(nèi)容以“*”代替具體內(nèi)容;③輸入完口令后按Enter鍵,口令正確則顯示“歡迎使用本系統(tǒng)!”,不正確則要求重新輸入口令,正確的口令是“ABC”。其設(shè)計(jì)界面如圖7-9所示,運(yùn)行界面如圖7-10~圖7-12所示。2.文本框控件2知識鏈接(1)文本框圖標(biāo):

。(2)功能:用于輸入或輸出(顯示)數(shù)據(jù)。通常將文本框綁定到字段上,從而顯示或編輯記錄數(shù)據(jù)。(3)常用屬性如下。①Value屬性:引用文本框的當(dāng)前值。②SelectOnEntry屬性:當(dāng)文本框用于輸入時(shí)需要設(shè)置此屬性為.T,表示輸入的唯一性,即每次新輸入的值取代前面的輸入值。③Passwordchar屬性:設(shè)置文本框顯示數(shù)據(jù)使用的替換字符。一般在創(chuàng)建口令輸入文本框時(shí)可設(shè)置該屬性為某字符,從而隱藏用戶輸入的口令。通常,輸入口令的文本框需要設(shè)置Passwordchar屬性為“*”,以便以*代替實(shí)際密碼顯示。④2.文本框控件2知識鏈接④常用方法如下。Refresh方法:重新繪制控件并刷新數(shù)據(jù),該方法適用于絕大多數(shù)控件。格式:(5)常用事件:Valid事件:在控件失去焦點(diǎn)之前發(fā)生。該事件有返回值,默認(rèn)值為.工。若返回.T.,則控件可以失去焦點(diǎn),繼續(xù)后面的操作,若返回.F.,則控件不能失去焦點(diǎn),光標(biāo)鎖定在控件上,不能進(jìn)行后續(xù)操作。2.文本框控件3案例實(shí)施1)設(shè)計(jì)思路文本框的Valid事件利用二路分支選擇語句IF···ELSE···ENDIF進(jìn)行判斷,如果文本框輸入值與實(shí)際口令一致,則光標(biāo)可以離開文本框,并顯示“歡迎使用本系統(tǒng)”信息,否則,光標(biāo)不能離開文本框,并顯示“口令錯(cuò),請?jiān)僭囈淮?”信息。2)設(shè)計(jì)步驟①啟動(dòng)表單設(shè)計(jì)器,創(chuàng)建表單CH7-2。②在表單中添加一個(gè)標(biāo)簽和一個(gè)文本框。③設(shè)置Form1的Caption為“口令驗(yàn)證窗口”,標(biāo)簽的Caption為“請輸入口令:”,F(xiàn)ontbold為.T,F(xiàn)ontsize為14。2.文本框控件3案例實(shí)施④文本框的SelectOnEntry為.T,使得新輸入的口令自動(dòng)取代舊口令,Passwordchar為“*”以便使輸入的口令顯示“*”。⑤編寫文本框的Valid事件代碼。2.文本框控件4知識擴(kuò)展1)常用屬性(1)ControlSource屬性:設(shè)置控件數(shù)據(jù)源,一般可以是字段,運(yùn)行時(shí)文本框顯示字段值,并可以將改變的值保存到指定的變量或字段中。(2)Readonly屬性:當(dāng)文本框用于輸出時(shí)一般設(shè)置此屬性為.T,表示輸出內(nèi)容不能被修改。2)常用方法Setfocus方法:光標(biāo)定位到文本框,適用于可獲得焦點(diǎn)的所有控件。格式:3.命令按鈕1素?cái)?shù)判斷(源程序:CH7-1.scx)1)案例描述例7.1用于判斷從鍵盤上輸入一個(gè)自然數(shù)是否為素?cái)?shù),具體要求如下:表單的標(biāo)題為“判斷素?cái)?shù)”;在文本框Text1中輸入完成后按Enter鍵“判斷”按會(huì)自動(dòng)按下,一次判斷完成后焦點(diǎn)置于文本框Text1,并自動(dòng)選中文本框中的所有信息,文本框Text2輸出結(jié)論如圖7-13和圖7-14所示。3.命令按鈕1素?cái)?shù)判斷(源程序:CH7-1.scx)2)知識鏈接(1)命令按圖標(biāo):

。(2)功能:完成特定操作。(3)常用屬性如下。①Caption屬性:命令按鈕顯示的文本。②Enabled屬性:屬性值為.T.時(shí),表示可以選擇此按鈕,為.F.時(shí)表示不可以選擇此按鈕。③Default屬性:屬性值為.T.時(shí),表示該命令按鈕為表單的默認(rèn)按鈕,運(yùn)行表單時(shí),若焦點(diǎn)不在此命令按鈕上,則按Enter鍵會(huì)發(fā)生該按鈕的Click事件。3.命令按鈕1素?cái)?shù)判斷(源程序:CH7-1.scx)(4)常用事件如下。Click事件:單擊命令按鈕時(shí)發(fā)生該事件,基本上適用于所有控件。3)案例實(shí)施①打開表單CH7-1,添加控件Text1,用于輸入一個(gè)任意的自然數(shù),因此設(shè)置Text1的SelectOnEntry屬性為.T,使得新輸入的自然數(shù)覆蓋前一次輸入的數(shù)。②繼續(xù)添加控件Text2,用于輸出結(jié)論,因此,設(shè)置Text2的Readonly屬性為.T,使得輸出結(jié)論不能在表單中直接被修改。3.命令按鈕1素?cái)?shù)判斷(源程序:CH7-1.scx)③續(xù)添加兩個(gè)命令按鈕Command1、Command2,分別設(shè)置其Caption為“判斷”“退出”。④設(shè)置“判斷”按鈕的Default屬性為.T,表示該按鈕是默認(rèn)的,運(yùn)行時(shí),只要用戶按Ente鍵,就會(huì)觸發(fā)該按鈕的Click事件。⑤雙擊“判斷”按鈕,選擇過程“Click”,編寫“判斷”按鈕的Click事件代碼。⑥雙擊“退出”按鈕,選擇過程“Click”,編寫“退出”按鈕的Click事件代碼。3.命令按鈕2用戶登錄界面(源程序:CH7-3.scx)1)案例描述[例7.3]設(shè)計(jì)圖書管理系統(tǒng)的用戶登錄界面,創(chuàng)建表單CH7-3,在用戶登錄過程中,用戶名和密碼都不允許為空,正確的用戶名和密碼取自passwordinfo表中的記錄。運(yùn)行界面如圖7-15~圖7-17所示。3.命令按鈕2用戶登錄界面(源程序:CH7-3.scx)2)案例實(shí)施(1)設(shè)計(jì)思路。①正確的用戶名、密碼放在表passwordinfo中,所以要將該表添加到數(shù)據(jù)環(huán)境設(shè)計(jì)器中。②用戶輸入的用戶名和密碼都不允許為空;在二者都不為空的情況下,將輸入值分別與表passwordinfo的“用戶名”和“密碼”字段值進(jìn)行核對,如果同時(shí)正確,顯示歡迎信息,否則,提示重新輸入,光標(biāo)重新定位到文本框。這部分功能寫入“確定”按鈕的單擊(Click)事件。3.命令按鈕2用戶登錄界面(源程序:CH7-3.scx)(2)設(shè)計(jì)步驟。①創(chuàng)建表單CH7-3,啟動(dòng)數(shù)據(jù)環(huán)境設(shè)計(jì)器,將表passwordinfo添加到數(shù)據(jù)環(huán)境設(shè)計(jì)器中。②為表單添加2個(gè)標(biāo)簽、2個(gè)文本框、2個(gè)命令按。③2個(gè)標(biāo)簽的Caption分別“用戶名”“密碼”。④2個(gè)文本框的SelectOnEntry為.T,Text2的Passwordchar為“*”。⑤2個(gè)命令按鈕的Caption分別為“確定”“退出”。⑥雙擊“確定”按鈕,選擇過程“Click”,編寫“確定”按鈕的Click事件代碼。⑦雙擊“退出”按鈕,打開Click事件代碼編輯窗口,寫入以下代碼。4.編輯框1案例描述(源程序:CH7-4.scx)[例7.4]創(chuàng)建表單CH7-4,實(shí)現(xiàn)矩陣輸出,具體要求如下:通過文本框輸入19中的任意自然數(shù),在編輯框輸出以該自然數(shù)為行數(shù)和列數(shù)的矩陣,并且矩陣主對角線為0,次對角線為1。矩陣表單設(shè)計(jì)界面如圖7-18所示,矩陣輸出界面和輸入出錯(cuò)界面如圖7-19和圖7-20所。4.編輯框2知識鏈接(1)編輯框圖標(biāo):

。(2)功能:處理長的字符型數(shù)據(jù)和備注型字段,它是既能做輸入也能做輸出的控件。(3)常用屬性如下。①ControlSource屬性:指定控件的數(shù)據(jù)源,為C型字段、內(nèi)存變量或M型字段。②Value屬性:指定控件的當(dāng)前值,只接收字符型數(shù)據(jù)。③Readonly屬性:指定控件是否只讀,.T表示只讀,.F.(默認(rèn))表示數(shù)據(jù)可修改。4.編輯框2知識鏈接(4)注意事項(xiàng)如下。①編輯框只能處理字符型數(shù)據(jù),文本框可以處理字符、數(shù)值、日期、邏輯等類型的數(shù)據(jù)。②文本框的輸入值默認(rèn)是字符,如果題目需要的數(shù)據(jù)不是字符,則要用函數(shù)VAL()、CTOD()等進(jìn)行轉(zhuǎn)換,即把輸入的字符轉(zhuǎn)換為題目需要的類型。③編輯可以處理多段文本,按Enter鍵不退出,而文本框按Eter鍵即退出。④編輯框?qū)崿F(xiàn)多行輸出時(shí),一般通過輸出函數(shù)CHR(13)或CHR(10)實(shí)現(xiàn)。其中函數(shù)CHR(13)表示回車,函數(shù)CHR(10)表示換行。4.編輯框3案例實(shí)施1)設(shè)計(jì)思路這是一個(gè)輸出N行N列二維圖形的問題,要用雙重循環(huán)來解決,即外循環(huán)I控制輸出的行數(shù)內(nèi)循環(huán)了控制每行輸出的列數(shù)。當(dāng)I=J或IJ=N+1時(shí),表示對角線上的元素。由于是通過編輯框輸出的,因此,先將要輸出的內(nèi)容以字符串的形式保存在一個(gè)內(nèi)存變量中,用函數(shù)CHR(13)實(shí)現(xiàn)回車換行,再把這個(gè)長字符串賦給編輯框。上述處理寫在“顯示”按鈕的Click事件中。若要控制文本框輸入的數(shù)字為1~9,則要編寫文本框的Valid事件代碼。4.編輯框3案例實(shí)施2)設(shè)計(jì)步驟①啟動(dòng)表單設(shè)計(jì)器,創(chuàng)建表單CH7-4。②在表單中添加1個(gè)標(biāo)簽、1個(gè)文本框、1個(gè)命令按鈕、1個(gè)編輯框。③標(biāo)簽的Caption為“請輸入1-9之間的數(shù)字:”Fontbold為.T,F(xiàn)ontsize為14。④設(shè)置命令按鈕的Caption為“顯示”,Default為.T.。⑤設(shè)置編輯框的Readonly為.T。⑥設(shè)置文本框的SelectOnEntry為.T(輸入唯一性)。4.編輯框3案例實(shí)施⑦編寫文本框的Valid事件,以控制數(shù)據(jù)為1~9,代碼如下。注意:文本框中的輸入值默認(rèn)是字符,而計(jì)算需要的是自然數(shù),所以這里用函數(shù)VALO進(jìn)行了轉(zhuǎn)換。4.編輯框3案例實(shí)施⑧雙擊“顯示”按鈕,選擇過程“Click”,編寫“顯示”按鈕的Click事件代碼。注意:這里是通過CHR(13)函數(shù)實(shí)現(xiàn)換行輸出的。5.計(jì)時(shí)器1信息行下移(源程序:CH7-5.scx)1)案例描述[例7.5]設(shè)計(jì)一個(gè)表單,單擊“開始”按鈕時(shí),表單信息行從表單頂端向下慢慢平移,信息行字體加粗、藍(lán)色。信息行下移表單設(shè)計(jì)界面如圖7-21所示,信息行下移表單運(yùn)行界面如圖7-22所示。5.計(jì)時(shí)器1信息行下移(源程序:CH7-5.scx)2)知識鏈接(1)計(jì)時(shí)器圖標(biāo):

。(2)功能:在給定時(shí)間間隔內(nèi)執(zhí)行指定操作,運(yùn)行時(shí)不可見。(3)常用屬性如下。①Interval屬性:時(shí)間間隔,以毫秒為單位。②Enabled屬性:計(jì)時(shí)器是否起作用,.T.表示起作用,.F.表示不起作用,默認(rèn)為.T。(4)常用事件如下。Timer事件每隔相同的時(shí)間間隔(即Interval屬性值)計(jì)算機(jī)就自動(dòng)執(zhí)行Timer事件指定的操作。5.計(jì)時(shí)器1信息行下移(源程序:CH7-5.scx)3)案例實(shí)施(1)設(shè)計(jì)思路。信息行可以使用標(biāo)簽控件或文本框控件來顯示,為了顯示信息行的下移,需要借助計(jì)時(shí)器控件在信息行下移過程中,標(biāo)簽的Top屬性不斷增加,可以通過標(biāo)簽的Top屬性遞增一個(gè)常量來實(shí)現(xiàn)再通過計(jì)時(shí)器來控制,由計(jì)時(shí)器的Timer事件實(shí)現(xiàn)標(biāo)簽的一次下移,由于Timer事件每隔相同的間間隔就要被計(jì)時(shí)器重復(fù)執(zhí)行,因此就實(shí)現(xiàn)了信息行的持續(xù)下移。(2)設(shè)計(jì)步驟。①創(chuàng)建表單CH7-5,添加1個(gè)標(biāo)簽、2個(gè)命令按鈕、1個(gè)計(jì)時(shí)器。5.計(jì)時(shí)器1信息行下移(源程序:CH7-5.scx)②設(shè)置Forml的Caption為“信息行下移”,標(biāo)簽的Caption為“按開始’按,我是會(huì)向下移動(dòng)的信息”,F(xiàn)ontbold為.T,F(xiàn)ontsize為12Fontcolor為藍(lán)色,命令按鈕的Caption為“開始”“退出”,計(jì)時(shí)器的Interval為50。③雙擊表單任意空白處,選擇過程“Init”,編寫Form的Iit事件代碼。④雙擊“開始”按鈕,選擇過程“Click”,編寫“開始”按鈕的Click事件代碼。5.計(jì)時(shí)器1信息行下移(源程序:CH7-5.scx)⑤雙擊“退出”按鈕,選擇過程“Click”,編寫“退出”的Click事件代碼。⑥雙擊“計(jì)時(shí)器”,選擇過程“Timer”,編寫“Timer”事件代碼。5.計(jì)時(shí)器2數(shù)字時(shí)鐘(源程序:CH7-6.scx)1)案例描述[例7.6]運(yùn)用文本框和計(jì)時(shí)器對象設(shè)計(jì)一個(gè)數(shù)字時(shí)鐘表單,具體要求如下:文本框中的文字為隸書、20號,表單的標(biāo)題為“數(shù)字時(shí)鐘”,每隔1秒刷新一次時(shí)間,如圖7-23和圖7-24所示。5.計(jì)時(shí)器2數(shù)字時(shí)鐘(源程序:CH7-6.scx)2)知識鏈接復(fù)習(xí)下面幾個(gè)函數(shù)的使用方法。(1)Time():以時(shí)、分、秒(hh:mm:ss)的形式返回當(dāng)前系統(tǒng)時(shí)間。(2)Left(字符表達(dá)式,數(shù)值表達(dá)式):從<字符表達(dá)式>最左邊開始截取<數(shù)值表達(dá)式>個(gè)字符。(3)Right(字符表達(dá)式,數(shù)值表達(dá)式):從字符表達(dá)式>最右邊開始截取<數(shù)值表達(dá)式>個(gè)字符。(4)Substr(字符表達(dá)式,數(shù)值表達(dá)式1,數(shù)值表達(dá)式2):在<字符表達(dá)式>中,從<數(shù)值表達(dá)式1>開始截取<數(shù)值表達(dá)式2>個(gè)字符。5.計(jì)時(shí)器2數(shù)字時(shí)鐘(源程序:CH7-6.scx)3)案例實(shí)施(1)設(shè)計(jì)思路。①Time()函數(shù)取得系統(tǒng)時(shí)間,取左子串函數(shù)Left取子函數(shù)Substr、取右子串函數(shù)Right分別取出系統(tǒng)時(shí)間的時(shí)、分、秒,再通過字符串連接將漢字填入文本框。②初始運(yùn)行時(shí)顯示系統(tǒng)時(shí)間,所以把步O需要做的操作寫在表單(Form1)的初始化(Init)事件中。③系統(tǒng)時(shí)間自動(dòng)刷新,間隔時(shí)間為1秒因此,計(jì)時(shí)器(Timer1)的Interval屬性設(shè)為1000(ms),Timer事件執(zhí)行Forml的Init事件代碼。5.計(jì)時(shí)器2數(shù)字時(shí)鐘(源程序:CH7-6.scx)(2)設(shè)計(jì)步驟。①創(chuàng)建表單CH7-6,添加1個(gè)文本框、1個(gè)計(jì)時(shí)器,文本框的Readonly為.T,F(xiàn)ontmame為隸書,F(xiàn)ontsize為20,計(jì)時(shí)器的Interval為1000。②將Form1的Caption設(shè)為“數(shù)字時(shí)鐘”。③雙擊表單任意空白處,選擇過程“Init”,編寫Form1的Imit事件代碼。5.計(jì)時(shí)器2數(shù)字時(shí)鐘(源程序:CH7-6.scx)④雙擊“計(jì)時(shí)器”,選擇過程“Timer”,編寫“Timer”事件代碼。5.計(jì)時(shí)器3reader表的自動(dòng)只讀瀏覽(源程序:CH7-7.scx)1)案例描述[例7.7]設(shè)計(jì)一個(gè)表單,完成表文件“reader.dbf”內(nèi)容的自動(dòng)只讀瀏覽顯示功能。其設(shè)計(jì)界面和運(yùn)行界面如圖7-24和圖7-25所示。具體要求如下:①表單初始顯示內(nèi)容為表文件“readerdbf的首記錄;②表單內(nèi)容將以1秒為間隔自動(dòng)刷新,即自動(dòng)順序向后翻記錄,當(dāng)翻至表底時(shí),將自動(dòng)回到首記錄循環(huán)翻動(dòng)。5.計(jì)時(shí)器3reader表的自動(dòng)只讀瀏覽(源程序:CH7-7.scx)2)知識鏈接表單需要添加數(shù)據(jù)環(huán)境,在數(shù)據(jù)環(huán)境設(shè)計(jì)器中加入表reader,并將reader中的各個(gè)字段直接拖曳到表單的合適位置,這樣可以自動(dòng)產(chǎn)生于每個(gè)字段綁定的控件。注意:使用這種方法添加控件的Name屬性值與通過表單控件工具欄添加控件的Name屬性值是不同的。3)案例實(shí)施(1)設(shè)計(jì)思路。記錄每隔1秒自動(dòng)刷新就需要使用計(jì)時(shí)器來實(shí)現(xiàn),計(jì)時(shí)器的間隔時(shí)間為1秒,計(jì)時(shí)器的Time事件代碼可實(shí)現(xiàn)表文件記錄指針的一次下移,當(dāng)記錄指針到達(dá)文件最后時(shí),會(huì)重新回到首記錄。通過計(jì)時(shí)器Timer事件的反復(fù)執(zhí)行,就實(shí)現(xiàn)了表文件記錄往復(fù)循環(huán)刷新。5.計(jì)時(shí)器3reader表的自動(dòng)只讀瀏覽(源程序:CH7-7.scx)(2)設(shè)計(jì)步驟。①創(chuàng)建表單CH7-7,添加1個(gè)計(jì)時(shí)器,并將計(jì)時(shí)器的Interval設(shè)為1000。②將表reader加入數(shù)據(jù)環(huán)境,并將reader的各個(gè)字段從數(shù)據(jù)環(huán)境設(shè)計(jì)器中直接拖放到表單的合適位置。③將Form1的Caption設(shè)為“自動(dòng)只讀瀏覽顯示”④雙擊表單任意空白處,選擇過程“Init”,編寫Form1的Init事件代碼。5.計(jì)時(shí)器3reader表的自動(dòng)只讀瀏覽(源程序:CH7-7.scx)⑤雙擊“計(jì)時(shí)器”,選擇過程“Timer”,編寫“Timer”的事件代碼。5.計(jì)時(shí)器4抽獎(jiǎng)表單(源程序:CH7-8.scx)1)案例描述[例7.8]設(shè)計(jì)一個(gè)抽獎(jiǎng)表單,根據(jù)reader的“讀者卡號”“姓名”字段進(jìn)行抽獎(jiǎng)。單擊“開始”按鈕,能夠使讀者卡號及姓名在文本框中滾動(dòng)顯示,單擊“停止”按鈕,抽中的讀者卡號及姓名以藍(lán)色顯示,文本框中的字體為宋體、18號、加粗,表單的標(biāo)題為“抽獎(jiǎng)”,每隔1秒滾動(dòng)1次如圖7-27~圖7-30所示。5.計(jì)時(shí)器4抽獎(jiǎng)表單(源程序:CH7-8.scx)2)案例實(shí)施(1)設(shè)計(jì)思路。①抽獎(jiǎng)的“讀者卡號”和“姓名”來自表reader,故需要把reader添加到數(shù)據(jù)環(huán)境設(shè)計(jì)器中。②單擊[開始]按鈕后,讀者卡號和姓名動(dòng)態(tài)顯示,需要設(shè)置計(jì)時(shí)器,間隔時(shí)間為1秒。③計(jì)時(shí)器的Timer事件代碼用于實(shí)現(xiàn)“reader”表記錄指針的一次下移,當(dāng)記錄指針到達(dá)文件最后時(shí),重新回到首記錄。④被抽中的[讀者卡號]和[姓名]字段值通過文本框Text在表單中輸出。⑤被抽中的記錄將不能參加下一次的抽獎(jiǎng),所以需要被邏輯刪除,邏輯刪除標(biāo)記在表單初始化時(shí)要設(shè)置為有效。⑥單擊[退出]按鈕結(jié)束表單運(yùn)行時(shí),要恢復(fù)所有被邏輯刪除的記錄。5.計(jì)時(shí)器4抽獎(jiǎng)表單(源程序:CH7-8.scx)(2)設(shè)計(jì)步驟。①創(chuàng)建表單CH7-8,添加1個(gè)文本框、3個(gè)命令按鈕、1個(gè)計(jì)時(shí)器。②設(shè)置Form1的Caption為“抽獎(jiǎng)”,文本框的Fontbold為.T,F(xiàn)ontsize為18,3個(gè)命令按鈕的Caption分別為“開始”“停止”“退出”,計(jì)時(shí)器的Interval為1000。③將表reader添加到數(shù)據(jù)環(huán)境設(shè)計(jì)器中。④雙擊表單任意空白處,選擇過程“Init”,編寫Form1的Init事件代碼。5.計(jì)時(shí)器4抽獎(jiǎng)表單(源程序:CH7-8.scx)⑤雙擊“開始”按鈕,選擇過程“Click”,編寫“開始”按鈕的Click事件代碼。⑥雙擊“停止”按鈕,選擇過程“Click”,編寫“停止”按鈕的Click事件代碼。5.計(jì)時(shí)器4抽獎(jiǎng)表單(源程序:CH7-8.scx)⑦雙擊“退出”按鈕,選擇過程“Click”,編寫“退出”按鈕的Click事件代碼。⑧雙擊“計(jì)時(shí)器”,選擇過程“Timer”,編寫“Timer”的事件代碼。6.列表框1案例描述(源程序:CH7-9.scx)[例7.9]按“讀者卡號”查詢讀者的信息。具體要求如下:初始運(yùn)行時(shí)只顯示左側(cè)的讀者卡號列表框中的信息,選中某一讀者卡號后,顯示與讀者卡號匹配的讀者信息,顯示內(nèi)容不可被修改,如圖7-31~圖7-33所示。6.列表框2知識鏈接(1)列表框圖標(biāo):

。(2)功能:用戶可從列表框中選擇一項(xiàng)或多項(xiàng)。(3)常用屬性如下。①RowsourceType屬性:確定控件的數(shù)據(jù)來源,可以取數(shù)值0~9。其選項(xiàng)說明如表7-4所示。②Rowsource屬性:確定控件的數(shù)據(jù)源,與RowsourceType配合使用。③ColumnCount屬性:列表框的列數(shù),為數(shù)值。6.列表框1案例描述(源程序:CH7-9.scx)④Value屬性:必須是列表框中存在的當(dāng)前值。(4)常用事件如下。InterActiveChange事件:在使用鍵盤或鼠標(biāo)更改控件的值時(shí),觸發(fā)此事件。6.列表框3案例實(shí)施1)設(shè)計(jì)思路。表單用到reader表,把reader表放入數(shù)據(jù)環(huán)境。選擇姓名使用的是列表框,需要設(shè)置列表框的數(shù)據(jù)源,設(shè)置列表框的RowsourceType為6,Rowsource為reader.姓名,當(dāng)用戶在列表框中選擇新值時(shí),表的記錄指針將同步移動(dòng)到相應(yīng)記錄上。界面右側(cè)顯示的數(shù)據(jù)直接從數(shù)據(jù)環(huán)境上拖入即可,表中的字段能自動(dòng)與對應(yīng)的控件建立綁定。需要編寫表單的Imit事件代碼,設(shè)置界面右側(cè)的數(shù)據(jù)不可見。需要編寫列表框的InterActiveChange事件代碼,當(dāng)用戶在列表框中選擇新值后,使界面右側(cè)的數(shù)據(jù)可見,并以最新的數(shù)據(jù)顯示。6.列表框3案例實(shí)施2)設(shè)計(jì)步驟①創(chuàng)建表單CH7-9,添加數(shù)據(jù)環(huán)境,并將rcader表添加到數(shù)據(jù)環(huán)境設(shè)計(jì)器中。②為表單添加標(biāo)簽和列表框控件。③啟動(dòng)數(shù)據(jù)環(huán)境設(shè)計(jì)器,將reader表的各個(gè)字段拖到表單的合適位置,使字段和控件自動(dòng)綁定。④設(shè)置列表框的RowsourceType=6,Rowsource=“reader.讀者卡號”。6.列表框3案例實(shí)施⑤雙擊表單空白處,選擇過程“Init”,編寫Forml的Init事件代碼。⑥雙擊列表框,選擇過程“InterActiveChange”,編寫該事件代碼。7.組合框1案例描述(源程序:CH7-10.scx)[例7.10]設(shè)計(jì)表單,實(shí)現(xiàn)對book表指定圖書類別總冊數(shù)的計(jì)算。具體要求如下:①表單標(biāo)題為“圖書冊數(shù)求和”,初始運(yùn)行時(shí)只顯示左邊的標(biāo)簽和book表圖書類別信息;②指定的類別可以是用戶輸入的,也可以從列表框中選擇,列表框顯示的類別不能重復(fù);③如果該類別不存在,則顯示“查無此類別!”,如果存在,則計(jì)算該類別的總冊數(shù),結(jié)果通過文本框輸出,如圖7-34~圖7-37所示。7.組合框2知識鏈接(1)組合框圖標(biāo):

。(2)功能:既能輸入,又能在下拉列表中選擇,兼有文本框和列表框的功能。(3)常用屬性:其兼有列表框和文本框的常用屬性,這里補(bǔ)充以下兩個(gè)屬性。①Style屬性:指定控件樣式,默認(rèn)為“0-下拉組合框”,如果把該屬性改為“2-下拉列表框”則此時(shí)的組合框只有列表框的功能。②DisplayValue屬性:可以是列表框中存在的當(dāng)前值,也可以是用戶輸入的當(dāng)前值。7.組合框2知識鏈接(4)常用方法如下。①AddItem方法:在組合框或列表框中添加一個(gè)新數(shù)據(jù)項(xiàng)。格式:②RemoveItem方法:在組合框或列表框中移除一個(gè)已有的數(shù)據(jù)項(xiàng)。格式:7.組合框2知識鏈接(5)常用事件如下。①Valid事件:同文本框的Valid事件。②InterActiveChange事件:同列表框的InterActiveChange事件。(6)注意事項(xiàng)這里不能直接設(shè)置組合的RowsourceType和Rowsource屬性不能將組合框直接與“book”表的“類別”字段綁定,因?yàn)椤癰ook”表中“類別”字段值是有重復(fù)的,而題目要求組合框顯示的類別不能重復(fù)。因此,先要對book表按照“類別”字段建立唯一索引,使重復(fù)的“類別”字段值不再顯示,再通過方法AddItem將不重復(fù)的“類別”字段值添加到組合框中。這段代碼寫在Form1的Iit事件中。7.組合框3案例實(shí)施1)設(shè)計(jì)思路對于圖書類別,要求既能由用戶輸入,又可以從列表框中選擇,所以要采用組合框控件。圖書類別數(shù)據(jù)的列表項(xiàng)不是簡單地將類別字段綁定,而是將重復(fù)的“類別”去掉后,循環(huán)運(yùn)用Additcn方法來填入類別。表單初始運(yùn)行時(shí),Label2、Text1不顯示。另外,執(zhí)行類別統(tǒng)計(jì)計(jì)算時(shí)需要關(guān)交互對話功能。這些處理都應(yīng)該在表單的mit事件中完成。利用組合框的Valid事件可以有效檢驗(yàn)輸入是否正確。計(jì)算指定類別書籍總冊數(shù)的處理用組合框的InterActiveChange事件實(shí)現(xiàn)。7.組合框3案例實(shí)施2)設(shè)計(jì)步驟①創(chuàng)建表單CH7-10,將book表添加到數(shù)據(jù)環(huán)境設(shè)計(jì)器中。②添加2個(gè)標(biāo)簽、1個(gè)組合框、1個(gè)文本框。③設(shè)置標(biāo)簽的Caption分別為“該類別出版的總冊數(shù)為:”“請選擇或輸入圖書的類別:”。④設(shè)置組合框的SelectOnEnry=.T,設(shè)置文本框的Readonly=.T,確保輸入的唯一性和輸出的不可修改性。7.組合框3案例實(shí)施⑤雙擊表單空白處,選擇過程“nit”,此過程用于將不重復(fù)的“類別”字段值寫入組合框。7.組合框3案例實(shí)施⑥雙擊組合框,選擇過程“Valid”,該過程用于檢測輸入的類別在book表中是否存在。7.組合框3案例實(shí)施⑦雙擊組合框,選擇過程“InterActiveChange”,該過程用于計(jì)算指定類別書籍的總冊數(shù)。8.復(fù)選框1案例描述(源程序:CH7-11.scx)[例7.11]設(shè)計(jì)一個(gè)統(tǒng)計(jì)車票總金額的表單。具體要求如下:在給出的各種車票中選擇自己需要的,單擊“計(jì)算總額”按鈕,將所需的車票總金額計(jì)算出來并通過文本框顯示出來,如圖7-38和圖7-39所示。2知識鏈接(1)復(fù)選框圖標(biāo):

。(2)功能:用于編輯或顯示二值數(shù)據(jù),如.T.和F。當(dāng)復(fù)選框被選中時(shí),表示.T,否則表示.F.reader表中的“性別”字段自動(dòng)對應(yīng)的控件就是復(fù)選框

。8.復(fù)選框2知識鏈接(3)常用屬性如下。①Caption屬性:用于設(shè)置復(fù)選框標(biāo)題。②Value屬性:用于設(shè)置復(fù)選框狀態(tài)。其屬性值為0或F.時(shí),表示未選中;屬性值為1或T.時(shí),表示選中;屬性值為2或NULL.時(shí),表示不確定,復(fù)選框以灰色表示。8.復(fù)選框2知識鏈接③ControlSource屬性:用于設(shè)置復(fù)選框數(shù)據(jù)源,數(shù)據(jù)源可以是邏輯型或數(shù)值型的字段或內(nèi)容變量。(4)常用事件有Click事件、InterActiveChange事件。3案例實(shí)施1)設(shè)計(jì)思路多種車票用多個(gè)復(fù)選框列出便于用戶靈活選擇。復(fù)選框Value的默認(rèn)值為0,是數(shù)值型的。如果復(fù)選框選中,即Value=1,則將對應(yīng)的票價(jià)加起來。對每個(gè)復(fù)選框都需要判斷,最后把相加的結(jié)果顯示在Text1中。以上處理寫在“計(jì)算總額”命令按鈕的Click事件中。8.復(fù)選框3案例實(shí)施2)設(shè)計(jì)步驟①創(chuàng)建表單CH7-11,添加2個(gè)標(biāo)簽、3個(gè)復(fù)選框、2個(gè)命令按鈕、1個(gè)文本框。②設(shè)置2個(gè)標(biāo)簽的Caption分別為“請選擇需要的車票:”“你應(yīng)付金額”。③設(shè)置3個(gè)復(fù)選框的Caption分別為“上海一北京票價(jià)580元”“杭州一上海票價(jià)50元”“杭州一南京票價(jià)280元”。④設(shè)置2個(gè)命令按鈕的Caption分別為“計(jì)算總額”“退出”。⑤設(shè)置文本框的Readonly為.T。8.復(fù)選框3案例實(shí)施⑥雙擊“計(jì)算總額”命令按鈕,選擇過程“Click”,添加其單擊事件代碼。⑦雙擊“退出”命令按鈕,選擇過程“Click”,添加其單擊事件代碼。9.微調(diào)框1案例描述(源程序:CH7-12.scx)[例7.12]編制一手工日歷,其設(shè)計(jì)界面和運(yùn)行界面如圖7-40和圖7-41所示。9.微調(diào)框2知識鏈接(1)微調(diào)框圖標(biāo):

。(2)作用:選擇或輸入一定范圍的數(shù)值型數(shù)據(jù)。它既可以由鍵盤輸入數(shù)據(jù),也允許通過微調(diào)的向上或向下箭頭對微調(diào)控件中的當(dāng)前值進(jìn)行增減操作。(3)常用屬性如下。①Increment屬性:用戶每次單擊向上或向下箭頭時(shí),微調(diào)文本框增加和減少的數(shù)值,數(shù)值默認(rèn)值為1。②KeyboardHighValue屬性:用戶通過鍵盤能輸入到微調(diào)文本框中的最高值,數(shù)值應(yīng)大于KeyboardLowValue。③KeyboardLowValue屬性:用戶能通過鍵盤輸入到微調(diào)文本框中的最低值,數(shù)值應(yīng)小于KeyboardHighValue。9.微調(diào)框2知識鏈接④SpinnerHighValue屬性:用戶單擊向上箭頭時(shí),微調(diào)控件能顯示的最高值。⑤SpinnerLowValue屬性:用戶單擊向下箭頭時(shí),微調(diào)控件能顯示的最低值。⑥Value:微調(diào)文本框的當(dāng)前值。(4)常用事件如下。①DownClick事件:單擊向下箭頭時(shí)觸發(fā)。②UpClick事件:單擊向上箭頭時(shí)觸發(fā)。9.微調(diào)框3案例實(shí)施1)設(shè)計(jì)思路微調(diào)框只能顯示數(shù)字,不能用來直接顯示日期型數(shù)據(jù),因此,將微調(diào)框與文本框結(jié)合起來就可以調(diào)整多種類型的數(shù)據(jù)。通過微調(diào)的DownClick、UpClick事件可實(shí)現(xiàn)上下翻動(dòng)。2)設(shè)計(jì)步驟①創(chuàng)建表單CH7-12,添加1個(gè)文本框和1個(gè)微調(diào)框,將微調(diào)框輸入部分調(diào)小,只顯示箭頭部分。②雙擊表單空白處,選擇過程“Init”,添加代碼如下。9.微調(diào)框3案例實(shí)施③雙擊微調(diào)框,選擇過程“DownClick”,添加代碼如下。④雙擊微調(diào)框,選擇過程“UpClick”,添加代碼如下。10.ActiveX控件1案例描述設(shè)計(jì)日歷控件,用戶可選擇需要的年、月、日,其設(shè)計(jì)界面如圖7-42所示。10.ActiveX控件2知識鏈接(1)ActiveX是微軟公司提出的一組技術(shù)標(biāo)準(zhǔn),ActiveX控件就是指符合ActiveX標(biāo)準(zhǔn)的控件。使用比較多的是其中的日歷控件。(2)ActiveX控件圖標(biāo):

。3案例實(shí)施在表單控件工具欄中選中ActiveX控件,將該控件放在表單的合適位置,在彈出的菜單中選擇“創(chuàng)建控件”選項(xiàng),彈出“插入對象”對話框,在“對象類型”列表框中選擇“日歷控件8.0”選項(xiàng),得到OLEControl1對象,如圖7-43所示。11.圖像和形狀控件1案例描述設(shè)計(jì)一個(gè)表單,用于顯示一張圖片

和一個(gè)高度、寬度均為100的紅色圓球

,如圖7-44所示。11.圖像和形狀控件2知識鏈接1)控件圖標(biāo)圖像:

。形狀:

。2)作用圖像:在表單中顯示圖像文件(BMP、GIF、JPGIOC等格式的圖像),主要用于圖像顯示而不能進(jìn)行編輯。形狀:圖形控件,即在設(shè)計(jì)或運(yùn)行時(shí)畫的幾何圖形。11.圖像和形狀控件2知識鏈接3)常用屬性(1)圖像(Image的常用屬性如下。①Picture屬性:指定顯示在控件中的圖形文件、圖形文件的路徑和文件名,可通過瀏覽按鈕查找。②Stretch屬性:指定如何對圖像進(jìn)行尺寸調(diào)整以適應(yīng)控件大小,0表示裁剪(默認(rèn))、1表示等比填充、2表示變比填充。③BackStvle屬性:確定對象的背景色是否透明,值為0或1,默認(rèn)值為1(不透明)。11.圖像和形狀控件2知識鏈接(2)形狀(Shape)的常用屬性如下。①Curvature屬性:指定Shape控件角的曲率,值為0~99,0表示直角,99表示圓。②Fillcolor屬性:指定封閉圖形的填充顏色,顏色為RGB(0,00)RGB(255.255255)。③FillStyle屬性:指定表單、形狀等的填充類型,值為0~7,0表示實(shí)線、1表示透明(默認(rèn))等。④pecialEffect屬性:指定控件的樣式,1表示平面(默認(rèn)),0表示三維。⑤BackStvle屬性:確定對象的背景色是否透明,0表示透明,1表示不透明(默認(rèn))。11.圖像和形狀控件3案例實(shí)施(1)創(chuàng)建表單,添加圖像控件,設(shè)置圖像的Picture為FOX.bmp、Stretch為1-等比裁BackStyl為0-透明。(2)添加形狀控件,并設(shè)置形狀的Curvature為99,FillStyle為0-實(shí)線,Fillcolor為RGB(255,0,0),Width、Height均設(shè)置為100。03容器對象PARTTHREE1.選項(xiàng)按鈕組1案例描述(源程序:CH7-13.scx)[例7.13]利用選項(xiàng)按鈕組設(shè)計(jì)調(diào)色板表單,能調(diào)出紅、橙、黃、綠、青、藍(lán)、紫、黑、白9種顏色,初始運(yùn)行顏色為白色。其設(shè)計(jì)和運(yùn)行界面如圖7-45和圖7-46所示。選項(xiàng)按鈕組是容器型對象,包含若干選項(xiàng)按鈕。(1)選項(xiàng)按鈕組圖標(biāo):

。(2)功能:選項(xiàng)按鈕組中包含的是選項(xiàng)按鈕,允許用戶在給定的多個(gè)選項(xiàng)中選擇一個(gè),且只能選擇一個(gè)。1.選項(xiàng)按鈕組1案例描述(源程序:CH7-13.scx)(3)常用屬性如下。①ButtonCount屬性:選項(xiàng)按組中選項(xiàng)按鈕的數(shù)目,正整數(shù),默認(rèn)為2。②Caption屬性:指定選項(xiàng)按鈕組中選項(xiàng)按鈕顯示的文本。③Value屬性:用于確定被選中的單選按鈕,可以是數(shù)值型或字符型。若屬性值為數(shù)值型,則表示第幾個(gè)單選按鈕被選中,值應(yīng)該是1~ButtonCount中的正整數(shù);若屬性值為字符型,則表示具有與屬性值相同標(biāo)題的單選按鈕被選中。④Enabled屬性:選項(xiàng)按鈕組的選項(xiàng)是否可選,.T.表示可選,.F.表示不可選。1.選項(xiàng)按鈕組1案例描述(源程序:CH7-13.scx)(4)常用事件如下。InterActiveChange事件:在用戶改變了選項(xiàng)按鈕組的值時(shí)觸發(fā)。(5)注意事項(xiàng)如下。①要編輯選項(xiàng)按鈕組包含的選項(xiàng)按鈕,可以右擊該選項(xiàng)組,在彈出的快捷菜單中選擇“編輯”選項(xiàng),按鈕組邊框顯示綠色,進(jìn)入編輯狀態(tài)。②代碼中的This指選項(xiàng)按鈕組,這是相對引用,即表示從當(dāng)前對象(選項(xiàng)按鈕組)開始引用。1.選項(xiàng)按鈕組2案例實(shí)施1)設(shè)計(jì)思路本案例選項(xiàng)按鈕組中包含9個(gè)按鈕,按3行3列排列顏色是用選項(xiàng)按鈕組的背景色調(diào)出來的改變選項(xiàng)后,選項(xiàng)按鈕組的背景色相應(yīng)改變,因此需要編寫選項(xiàng)按鈕組InterActiveChange事件代碼。另外,要求初始運(yùn)行顏色為白色,所以需要編寫表單的Init事件代碼。2)設(shè)計(jì)步驟①創(chuàng)建表單CH7-13,添加1個(gè)選項(xiàng)按組。②設(shè)置Forml的Caption為“調(diào)色板”,選項(xiàng)按鈕組的ButtonCount-9。③右擊選項(xiàng)按鈕組,在彈出的快捷菜單中選擇“編輯”選項(xiàng),選項(xiàng)按鈕組邊框顯示綠色,進(jìn)入編輯狀態(tài)。1.選項(xiàng)按鈕組2案例實(shí)施④在編輯狀態(tài)下,單擊選項(xiàng)按鈕組的每一個(gè)選項(xiàng)按鈕,分別設(shè)置每一個(gè)選項(xiàng)按鈕的Caption為赤、橙、黃、綠、青、藍(lán)、紫、黑、白,調(diào)整選項(xiàng)按鈕的位置,通過布局工具欄對齊按鈕。⑤雙擊表單任意空白處,選擇過程“Init”,編寫Form1的Init事件代碼。1.選項(xiàng)按鈕組2案例實(shí)施⑥雙擊選項(xiàng)按鈕組,選擇過程“InterActiveChange”,編寫OptionGroupl的InterActiveChange事件代碼。1.選項(xiàng)按鈕組3知識擴(kuò)展命令按鈕組(CommandGroup)的圖標(biāo)為

。命令按鈕組是功能、屬性與選項(xiàng)按鈕組非常相似的容器型對象,其包含若干命令按鈕,常用事件是Click。本案例如果用命令按鈕組代替選項(xiàng)按鈕組設(shè)計(jì)調(diào)色板,則過程如下。①創(chuàng)建新表單,添加1個(gè)命令按鈕組。②設(shè)置Form1的Caption為“調(diào)色板”,命令按鈕組的ButtonCount=9。③右擊命令按鈕組,在彈出的快捷菜單中選擇“編輯”選項(xiàng),進(jìn)入編輯狀態(tài)。④在編輯狀態(tài)下,單擊命令按組的每一個(gè)命令按鈕,分別設(shè)置每一個(gè)命令按鈕的Captior為赤、橙、黃、綠、青、藍(lán)、紫、黑、白,調(diào)整命令按鈕的位置,通過布局工具欄對齊按鈕。1.選項(xiàng)按鈕組3知識擴(kuò)展⑤雙擊表單任意空白處,選擇過程“Init”,編寫Form1的Init事件代碼。⑥雙擊命令按鈕組,選擇過程“Click”,編寫CommandGroup1的Click事件代碼。2.表格1圖書借閱(源程序:TSJY.scx)1)案例描述(源程序:CH7-14.scx)[例7.14]編輯reader表信息瀏覽界面。具體要求如下:通過表格控件來實(shí)現(xiàn),用戶可以直接在界面中修改、刪除(通過表格左側(cè)的刪除標(biāo)記刪除記錄)和瀏覽表信息,如圖7-47和圖7-48所示。2.表格1圖書借閱(源程序:TSJY.scx)2)知識鏈接表格是容器型對象,包含若干列,表格中為每一列定義標(biāo)題的是標(biāo)頭。(1)表格圖標(biāo):

。(2)功能:類似于瀏覽窗口,按行和列顯示數(shù)據(jù)。(3)常用屬性有RecordSourcetype、RecordSource,這一對屬性通常一起被定義。RecordSourcetype屬性的取值如表7-5所示。表格的其他屬性如表7-6所示。2.表格1圖書借閱(源程序:TSJY.scx)(4)常用事件如下。AfterRowColChange事件:單擊表格中的任意一行即可觸發(fā)該事件。(5)列的常用屬

溫馨提示

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

評論

0/150

提交評論