




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Visual Basic程序設(shè)計(jì)教程 課件2011版參考文獻(xiàn)Visual Basic程序設(shè)計(jì)教程 課件2011版博學(xué)之,審問之,慎思之,明辨之,篤行之。 禮記中庸博學(xué)之,審問之,慎思之,明辨之,篤行之。 禮記中庸目 錄 2 程序設(shè)計(jì)入門3 數(shù)據(jù)類型、常量與變量4 運(yùn)算符與表達(dá)式5 控制結(jié)構(gòu)6 過程8 內(nèi)部控件10 繪圖11 多重窗體與多文檔窗體7 數(shù)組與自定義數(shù)據(jù)類型12 文件操作1 引言9 內(nèi)部函數(shù)13 數(shù)據(jù)庫操作第1章 引言一、計(jì)算機(jī)編程語言的分類 當(dāng)今,程序設(shè)計(jì)語言的種類繁多,其分類方法也有多種。根據(jù)程序設(shè)計(jì)語言的發(fā)展或按其與硬件的接近程度,通??煞譃闄C(jī)器語言、匯編語言和高級語言三種類型
2、,如下圖所示。 計(jì)算機(jī)語言機(jī)器語言(第一代語言) 匯編語言(第二代語言) 高級語言 Fortran、Basic、Cobol、Pascal、C等(稱為第三代語言) 高級語言 JAVA、C+、VB、.NET、ASP、SQL、PHP、XML、FoxBASE、FoxPro、Oracle 、Forth等(也稱為第四代語言) Lisp、Prolog(人工智能語言, 人們也常稱為第五代語言)。一般來說,人工智能語言應(yīng)具備如下特點(diǎn): 具有符號處理能力(即非數(shù)值處理能力); 適合于結(jié)構(gòu)化程序設(shè)計(jì),編程容易; 具有遞歸功能和回溯功能; 具有人機(jī)交互能力; 適合于推理; 既有把過程與說明式數(shù)據(jù)結(jié)構(gòu)混合起來的能力,又
3、有辨別數(shù)據(jù)、確定控制的模式匹配機(jī)制。 面向?qū)ο蟮恼Z言(Object-Oriented Language) :上個(gè)世紀(jì)80年代中期提出的新思想,是一種以對象作為基本程序結(jié)構(gòu)單位的程序設(shè)計(jì)語言,指用于描述的設(shè)計(jì)是以對象為核心,而對象是程序運(yùn)行時(shí)刻的基本成分。語言中提供了類、繼承、封閉和多態(tài)等成分,如Visual Basic、C+、Java、 C#、 Object Pascal(Delphi) 等。 “面向過程”是一種致力于用計(jì)算機(jī)能夠理解的邏輯來描述需要解決的問題和解決問題的具體方法和步驟。編程時(shí)不僅要說明做什么,還要非常詳細(xì)地告訴計(jì)算機(jī)如何做,程序需要詳細(xì)描述解題的過程和細(xì)節(jié)。 “面向?qū)ο蟆笔且?/p>
4、種以事物為中心的編程思想。比如以公共汽車而言?!懊嫦蜻^程”就是汽車啟動(dòng)是一個(gè)事件,汽車到站是另一個(gè)事件。在編程序的時(shí)候我們關(guān)心的是某一個(gè)事件。而不是汽車本身。“面向?qū)ο蟆毙枰⒁粋€(gè)汽車的實(shí)體,由實(shí)體引發(fā)事件。我們關(guān)心的是由汽車抽象成的對象,這個(gè)對象有自己的屬性,象輪胎,顏色等;有自己的方法,象啟動(dòng),行駛等.方法也就是汽車的行為.而不是汽車的每個(gè)事件。面向過程的語言(高級語言)。高級語言,其語法和結(jié)構(gòu)更類似普通英文,且由于遠(yuǎn)離對硬件的直接操作,使得一般人經(jīng)過學(xué)習(xí)之后都可以編程,如:Fortran、C、Basic、Pascal等 。機(jī)器語言:計(jì)算機(jī)所能識(shí)別的語言,即由0和1構(gòu)成的代碼。但通常人們
5、編程時(shí),不采用機(jī)器語言,因?yàn)樗浅ky于記憶和識(shí)別。匯編語言(Assembly Language):也是面向機(jī)器的程序設(shè)計(jì)語言,用助記符(Memoni)代替操作碼,用地址符號(Symbol)或標(biāo)號(Label)代替地址碼。這樣用符號代替機(jī)器語言的二進(jìn)制碼,就把機(jī)器語言變成了匯編語言(或稱為符號語言)。使用匯編語言編寫的程序,機(jī)器不能直接識(shí)別,要由一種程序?qū)R編語言翻譯成機(jī)器語言,這種起翻譯作用的程序叫匯編程序。匯編程序把匯編語言翻譯成機(jī)器語言的過程稱為匯編。二、程序的執(zhí)行方式和運(yùn)行環(huán)境解釋型。應(yīng)用程序源程序必須在編程環(huán)境的支持下才能運(yùn)行。執(zhí)行方式類似于“同聲翻譯”,一邊由相應(yīng)語言的解釋器“翻譯”
6、成目標(biāo)代碼(機(jī)器語言),一邊執(zhí)行,因此效率比較低,而且不能生成可獨(dú)立執(zhí)行的可執(zhí)行文件,應(yīng)用程序不能脫離其解釋器,但這種方式比較靈活,可以動(dòng)態(tài)地調(diào)整、修改應(yīng)用程序。 編譯型。編譯是指在應(yīng)用源程序執(zhí)行之前,就將程序源代碼“翻譯”成目標(biāo)代碼(機(jī)器語言),因此其目標(biāo)程序可以脫離其語言環(huán)境獨(dú)立執(zhí)行,即生成直接運(yùn)行于操作系統(tǒng)之上的可執(zhí)行文件.exe。使用比較方便、效率較高、保密性好。但應(yīng)用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標(biāo)文件( .OBJ)才能執(zhí)行。例如VB、VC、VFP、Delphi等。三、面向?qū)ο蟮幕靖拍睢皩ο蟆迸c“類” 的概念任何事物都可以被看作“對象”(Object),而
7、“類”(Class)則是同種對象的總稱。例如:“人”是一個(gè)類,每個(gè)具體的人是一個(gè)對象。在程序設(shè)計(jì)中,類和對象是事先定義好的。例如:“按鈕”是一個(gè)類,每個(gè)具體的按鈕是一個(gè)對象。屬性名稱 =XX 材料= XX直徑 = XX顏色 = XX厚度 = XX方法飄浮上升下降膨脹縮小爆炸事件被釋放被扎被打氣被放氣對象:一只氣球面向?qū)ο蟮腜ME模型任何對象都可以從以下三個(gè)方面進(jìn)行描述: “屬性”(Property):對象所具有的特性。 “方法”(Method):對象可能執(zhí)行的操作或行為。 “事件”(Event):對象可以識(shí)別并作出反應(yīng)的外部刺激。 以下是兩個(gè)生活事例。一個(gè)是一只氣球,第二個(gè)是人。屬性姓名 =
8、張三性別 = 男身高 = 1.7米國藉 = 中國年齡 = 19歲 方法跑步學(xué)習(xí) 笑 唱歌 事件遇到高興的事情 下課了.對象:一個(gè)人不同對象之間的關(guān)系 一個(gè)“系統(tǒng)”是由多個(gè)相互聯(lián)系的對象組成(對象的數(shù)目和種類由系統(tǒng)的復(fù)雜程度決定)。同一系統(tǒng)中的對象之間通過相互作用(方法與事件)來改變各自的屬性,使整個(gè)系統(tǒng)保持運(yùn)動(dòng)和發(fā)展。 對于同一個(gè)對象,它的屬性、方法和事件之間存在極為密切的關(guān)系:事件的發(fā)生方法的執(zhí)行屬性的改變。 Visual Basic的優(yōu)點(diǎn)是語言簡單易學(xué),引入了“面向?qū)ο蟆焙汀笆录?qū)動(dòng)”等先進(jìn)思想,支持ActiveX控件、VBS和VBA,對網(wǎng)絡(luò)和數(shù)據(jù)庫的編程有良好的支持,擁有完全的中文界面和
9、幫助系統(tǒng)。缺點(diǎn)是可移植性不好,只適用于32位Windows。 本課程使用:VB 6中文企業(yè)版SP6WinXPMSDN幫助Visual Basic 的優(yōu)點(diǎn)和缺點(diǎn)四、Visual Basic 簡介Visual Basic 發(fā)展史VB 1.0 VB 3.0 VB 4.0 VB 5.0 VB 6.0 VB.NET 1.0 VB.NET 1.120世紀(jì)90年代初 1997年 1998年 2001年 2003年中文學(xué)習(xí)版中文專業(yè)版中文企業(yè)版VB 20052005年VB 20072007年Visual Basic 6的安裝和啟動(dòng)方法(1)“開始”按鈕(2)“開始”菜單(3)“程序”子菜單(4)“VB6”子菜
10、單(5)此菜單項(xiàng)啟動(dòng)VB集成環(huán)境返回目錄VB 6的安裝方法,參見課堂安裝演示操作。VB 6的啟動(dòng)方法,如下圖所示。第2章 程序設(shè)計(jì)入門工具箱工程窗口屬性窗口窗體布局窗口窗體對象對象窗口一、Visual Basic 6的集成開發(fā)環(huán)境代碼窗口立即窗口本地窗口主菜單主工具欄PictureBox 控件TextBox 控件CommandButton 控件OptionButton 控件ListBox 控件VScrollBar 控件DriveListBox 控件FileListBox 控件Line 控件Data 控件Image 控件Shape 控件DirListBox 控件Timer 控件HScrollBa
11、r 控件ComboBox 控件CheckBox 控件Frame 控件Label 控件二、Visual Basic 工具箱窗口三、Visual Basic 集成環(huán)境的“工程”窗口(右上)和“屬性”窗口(下)四、Visual Basic 集成環(huán)境的“對象”窗口向窗體上添加控件的方法單擊圖標(biāo),再拖動(dòng);雙擊圖標(biāo);Ctrl鍵單擊圖標(biāo),再拖動(dòng);復(fù)制粘貼。選擇控件的方法單擊可選擇一個(gè)控件按住Ctrl鍵,單擊要選擇的多個(gè)控件。按住Shift鍵,單擊要選擇的多個(gè)控件。在窗體上拖動(dòng)鼠標(biāo),畫出一個(gè)包含要選擇控件的矩形。改變控件的大小和位置 在窗體的控件上單擊,可使該控件成為“活動(dòng)”的,“活動(dòng)”控件的四周有8個(gè)小方塊
12、。改變控件大小的方法如下:將鼠標(biāo)指針對準(zhǔn)控件的小方塊,出現(xiàn)雙向箭頭,拖動(dòng)鼠標(biāo)即可改變變控件的高度和寬度;按下Shift+“方向箭頭”鍵也可改變控件的大小。改變控件的位置如下:將鼠標(biāo)指針指向活動(dòng)的控件,拖動(dòng)控件到所需位置。按下Ctrl+“方向箭頭”鍵也可改變控件的位置。 此外還可修改控件的Left、Top、Width、Height改變控件的大小和位置五、程序的設(shè)計(jì)、運(yùn)行和中斷狀態(tài)(1)設(shè)計(jì)狀態(tài)設(shè)置對象、編輯代碼。(2)運(yùn)行狀態(tài)解釋型地運(yùn)行程序。(3)中斷狀態(tài)調(diào)試程序,進(jìn)行排錯(cuò)。可以在三種狀態(tài)之間進(jìn)行切換。六、窗體(Form)對象 窗體是窗口的框架,是VB程序最基本的對象,是各類控件的容器。VB開
13、發(fā)環(huán)境為每個(gè)窗體模塊自動(dòng)地創(chuàng)建了一個(gè)窗體對象。 【例題】如下圖左所示,設(shè)計(jì)一個(gè)應(yīng)用程序,以實(shí)現(xiàn)簡單的加法運(yùn)算的功能。Name:對象名。用于標(biāo)識(shí)對象的字符串。對象名必須滿足以下條件: 必須以字母開頭 可以包含字母、數(shù)字和下劃線,不能包括標(biāo)點(diǎn)和空格 不能多于40個(gè)字符 不能與其它公共對象重名,可以與關(guān)鍵字相同,但應(yīng)避免 在同一模塊下,不能重名 建議為對象名加上類型前綴Caption:顯示在窗體標(biāo)題欄上的文字。BorderStyle:邊框類型。決定窗體是否可縮放、標(biāo)題欄是正常還是窄、是否在任務(wù)欄上出現(xiàn)等。該屬性對MinButton、MaxButton屬性的設(shè)置有影響。ControlBox:窗體是否有
14、圖標(biāo)、系統(tǒng)菜單和最大化、最小化與關(guān)閉按鈕。Icon:窗體圖標(biāo)。與一圖標(biāo)文件相聯(lián)系。如為“無”則使用默認(rèn)圖標(biāo)。MaxButton與MinButton:是否顯示最大化與最小化按鈕,值為True或False。只有二者均為False時(shí)才不顯示,否則設(shè)為False者只以無效顯示。Visible:窗體是否可見,True或 False。七、Form對象的常用屬性Left、 Top屬性:窗體相對于屏幕的位置。坐標(biāo)值的默認(rèn)單位是緹(twip),1緹等于1/567厘米。Width 、Height屬性:窗體的寬度與高度。默認(rèn)單位也是緹。Moveable屬性 :True/False,F(xiàn)alse時(shí)窗體不能被鼠標(biāo)拖動(dòng)。E
15、nabled屬性: True/False,F(xiàn)alse時(shí)窗體及上面的控件不響應(yīng)用戶的操作。WindowState屬性:取值為0、1、2,決定窗體還原、最小化、最大化狀態(tài)。Picture屬性: 指定一個(gè)圖片文件,用為窗體的背景圖。 對象的每個(gè)屬性反映了該對象某個(gè)方面的特性。同一個(gè)對象的不同屬性之間可能相互影響。程序設(shè)計(jì)階段可以在屬性窗口中對屬性的值進(jìn)行設(shè)置,(有些屬性不能在設(shè)計(jì)時(shí)設(shè)置;有些屬性的設(shè)置只有在運(yùn)行時(shí)才反映出來)。在程序進(jìn)行過程中,程序代碼可以讀取或重新設(shè)置屬性的值。有一些屬性的值只能在設(shè)計(jì)階段設(shè)置,程序運(yùn)行過程中這些屬性是只讀的。 在程序中對對象的屬性進(jìn)行存取要以如下格式: 對象名.屬
16、性名如:frmFirst.Height = 1200 表示窗體frmFirst的高度設(shè)置為1200單位(緹)八、屬性的分類九、運(yùn)行時(shí)對象屬性的讀寫方法在設(shè)計(jì)和運(yùn)行狀態(tài)下都可設(shè)置的屬性只能在設(shè)計(jì)時(shí)設(shè)置,不能在運(yùn)行時(shí)設(shè)置的屬性。如對象的Name屬性。只能在運(yùn)行時(shí)設(shè)置,不能在設(shè)計(jì)時(shí)設(shè)置的屬性。在設(shè)計(jì)和運(yùn)行狀態(tài)下都可設(shè)置,但只有在運(yùn)行時(shí)才能生成的屬性。如Visible屬性。訪問對象屬性的格式: 對象名.屬性名如: Form1.Caption通過此格式可以讀取屬性的值,也可以設(shè)置屬性的值。如: Form1.Caption 你好!Visual Basic 或: x = Form1.Left 此外,窗體的屬
17、性還有:BackColor、ForeClolor、Font、FontSize、 FontBold、FontItalic、FontUnderline、AutoRedraw等。Move方法,語法為: 對象名.Move Left, Top, Width, Height 該方法將 object 對象移動(dòng)到以 left, top 定義的新位置。同時(shí)可以改變該對象的大?。ㄒ?width , height為新的寬與高)。其中 left 參數(shù)必須給定。但是,要給定任何其它的參數(shù),必須先給定出現(xiàn)在語法中該參數(shù)前面的全部參數(shù)。例:設(shè)frmFirst為一窗體對象名。 frmFirst.Move 1000,1000,
18、1200,2000 既移動(dòng)位置,又改變大小 frmFirst.Move 1000,1000只移動(dòng) frmFirst.Move 1000只左右移動(dòng) frmFirst.Move 1000, ,1200錯(cuò)誤,缺少參數(shù)Move方法同時(shí)改變了Left, Top, Width與Height屬性的值。效果與分別設(shè)置這些屬性的值等效。Hide方法,語法為: 對象名.Hide 此方法將object對象隱藏,并將其Visible屬性設(shè)置為 False。窗體被隱藏之后,就不能響應(yīng)用戶的操作。該方法無參數(shù)。 某些方法的執(zhí)行改變一些屬性的值,有些方法的執(zhí)行結(jié)果可能受一些屬性的影響。方法的執(zhí)行可能等效于對一些屬性的修改。
19、十、Form對象的常用方法Show方法:使窗體從隱藏狀態(tài)變?yōu)轱@示狀態(tài)。 對象名.Show Show方法有兩個(gè)參考,將在第11章講解。Print方法:在窗體表面上顯示指的內(nèi)容。 對象名. Print“,|;”分隔的輸出項(xiàng) Print支持以逗號或分號分隔的多個(gè)輸出項(xiàng)的值,每個(gè)輸出項(xiàng)可以是屬性、變量、常量或表達(dá)式。其中:分中(;)光標(biāo)定位在上一個(gè)顯示的字符后,而逗號(,)光標(biāo)定位在下一個(gè)打印區(qū)(每隔14列)的開始位置處。 默認(rèn)情況下,每調(diào)用一次Print方法將在窗體上顯示一行內(nèi)容。 Print方法的詳細(xì)用法見第10章。Cls方法:該方法用來清除窗體上顯示的正文和和繪制的圖形。Cls方法的一般格式如下
20、: 窗體名.|Cls十一、窗體Form對象的常用事件 事件是對象能夠識(shí)別的外部刺激并做出反映,該刺激既可能來自于用戶,也可能來自于操作系統(tǒng)。常用的窗體事件有:Load、Activate、Click、DblClick、Resize、UnLoad等。 Load事件:窗體在加載顯示時(shí)此發(fā)此事件,常用來對窗體或控件進(jìn)行初始化。 Activate事件:在Load事件發(fā)生后,系統(tǒng)自動(dòng)觸發(fā)并執(zhí)行該事件。 Load事件發(fā)生時(shí)窗體是不活動(dòng)的,Activate事件發(fā)生時(shí)窗體已是活動(dòng)的。在不活動(dòng)的窗體上不能使用Print方法,在活動(dòng)的窗體上能使用Print方法。Click事件:當(dāng)用戶在窗體上(除標(biāo)題欄和邊框)單擊鼠
21、標(biāo)左鍵或右鍵時(shí)引發(fā)。Click事件過程:當(dāng)對象接收到Click事件時(shí)所執(zhí)行的代碼。窗體的Click事件語法: Private Sub Form_Click() (語句組) End Sub用戶可以把想讓對象對該事件所做的反應(yīng)以VB語句的形式寫在事件過程中。在一個(gè)對象的事件過程中,可以設(shè)置其自身的或其它的對象的屬性、執(zhí)行其自身的或其它的對象的方法、甚至可以調(diào)用自身的或其它的對象的事件過程。DblClick事件:DblClick事件是當(dāng)程序運(yùn)行后,用鼠標(biāo)雙擊窗體時(shí)觸發(fā)的事件。 DblClick事件的形式如下: Private Sub Form_DblClick() (語句組) End SubDeac
22、tivate(活動(dòng)、非活動(dòng))事件 取消活動(dòng)窗體激活另一個(gè)窗體時(shí)該窗體發(fā)生Deactivate事件。 Paint(繪畫)事件 重新繪制一個(gè)窗體時(shí)發(fā)生Paint事件。當(dāng)移動(dòng)、放大、縮小該對象或一個(gè)覆蓋該對象的窗口移動(dòng)后,該窗體暴露出來,就會(huì)發(fā)生此事件。 Resize事件:當(dāng)窗體因任何原因大小發(fā)生變化時(shí)(或第一次顯示窗體時(shí))引發(fā)引事件。在拖動(dòng)邊框窗體改變大小時(shí),會(huì)連續(xù)引發(fā)多個(gè)Resize事件。例如加入下面的代碼,會(huì)在改變窗體大小的同時(shí)使窗體居中顯示: Private Sub Form_Resize() Form1.Left = (Screen.Width - Form1.Width) / 2 For
23、m1.Top = (Screen.Height - Form1.Height) / 2 End SubUnload事件:Unload事件是在窗體被卸載時(shí)觸發(fā)的事件。該事件過程執(zhí)行后,窗體從內(nèi)存工作區(qū)被清除,用戶在此可進(jìn)行相關(guān)數(shù)據(jù)的保存。 Unload事件的形式如下: Private Sub Form_Unload(Cancel As Integer) (語句組) End Sub在關(guān)閉窗體時(shí),如果Cancel 是一個(gè)非0值(True),則禁止關(guān)閉窗體;Cancel值是0時(shí)(False),則可進(jìn)行卸載窗體。十二、“代碼”窗口的使用打開【例2.2】 改變窗體大小。 打開【例2.1】 單擊和雙擊事件的
24、使用。Left、 Top:命令按鈕在窗體上的位置。坐標(biāo)值的默認(rèn)單位是緹(1p/20)。Width 、Height :按鈕的寬度與高度。默認(rèn)單位也是緹。Caption:顯示在按鈕表面上的文字。可使用“&”字符與其后的字母組成快捷鍵。Visible: True 或False。該按鈕是否可見。Enabled: True 或False。False時(shí)按鈕變灰,不能被點(diǎn)擊。Name:對象名。要符合VB對對象名的要求。建議為按鈕對象名加上“cmd”前綴。Value:將該屬性設(shè)為True可以觸發(fā)按鈕對象的Click事件。只能在運(yùn)行時(shí)設(shè)置。Default:若該屬性為True,則按鈕對象為默認(rèn)按鈕。不管焦點(diǎn)在哪個(gè)
25、控件上,用戶按回車鍵,均觸發(fā)按鈕的Click事件。默認(rèn)按鈕有較粗的邊框。一個(gè)窗體上只能有一個(gè)按鈕的Default屬性為True。Cancel:若該屬性為True,則按鈕對象為默認(rèn)的“取消”按鈕。不管焦點(diǎn)在哪個(gè)控件上,用戶按“ESC”鍵,均觸發(fā)按鈕的Click事件。常用屬性TopTopLeftLeftWidth十三、命令按鈕(CommandButton)Picture:按鈕裝入圖片文件(.bmp或.ico),但Style必須為1.Move方法,此方法在窗體上移動(dòng)按鈕對象,使用語法格式如下: object.Move Left, Top, Width, HeightClick事件:當(dāng)用戶在按鈕表面上
26、單擊鼠標(biāo)左鍵產(chǎn)生Click事件。另外下列方法也能觸發(fā)按鈕的Click事件: 用Tab鍵把焦點(diǎn)移動(dòng)到該按鈕上,然后按空格或回車鍵。按快捷鍵(Alt + 具有下劃線的字母) 如為窗體的缺省按鈕,按回車鍵。 如為窗體的默認(rèn)“取消”按鈕,按ESC鍵。在運(yùn)行階段設(shè)置屬性:object.Value = TrueClick事件過程:當(dāng)對象接收到Click事件時(shí)所執(zhí)行的代碼。按鈕的Click事件語法:Private Sub object_Click()(語句組)End Sub命令按鈕對象不支持鼠標(biāo)雙擊事件,即無DblClick事件。雙擊操作被理解為兩個(gè)單擊操作。窗體與控件事件過程名的區(qū)別:對于窗體對象,其事件
27、過程名為“Form_事件名”,與其對象名無關(guān)。對于控件對象,其事件過程名為“對象名_事件名”,用到了其對象。命令按鈕對象的常用方法和事件打開【例2.3】 使用按鈕移動(dòng)窗體。Name、Left、 Top、Width 、Height、Visible、Enabled 屬性與命令按鈕的意義相同。Text:框中的文本內(nèi)容(默認(rèn)屬性)。MaxLength:限制文本框中的文本的最大長度(字符個(gè)數(shù))。如果為0,則長度只受系統(tǒng)限制。MultiLine:為True時(shí),文本框中可以顯示多行內(nèi)容,最多可包含32K個(gè)字符。False時(shí),忽略換行符,最多可包含2048。ScrollBars:設(shè)置文本框的滾動(dòng)條,有03共4
28、個(gè)取值。只有MultiLine屬性為True時(shí),此屬性才有意義。SelLength、 SelStart和 SelText:分別為當(dāng)前選定文本的長度、選定文本的起始位置(以0為起點(diǎn))與選定文本的內(nèi)容。這三屬性只在運(yùn)行時(shí)使用。Locked:為True時(shí),框內(nèi)的內(nèi)容不能被編輯(與將Enabled設(shè)置為False不同) 。Alignment:文本框中文本相對與文本框的對齊方式。須將MultiLine設(shè)為True。PasswordChar:設(shè)置口令字符。須將MultiLine設(shè)為False。十四、文本框(TextBox)文本框的常用屬性文本框是一個(gè)文本編輯區(qū)域,用戶可以在該區(qū)域輸入、編輯、修改和顯示正文
29、內(nèi)容。Move方法:用法與窗體相同。SetFocus方法:該方法用于將光標(biāo)移動(dòng)到指定的文本框中。同樣地,文本框支持Click、DblClick等常見事件。 Change事件:當(dāng)文本框的內(nèi)容發(fā)生改變時(shí)引發(fā)Change事件。Private Sub object_Change()(語句)End Sub文本框(TextBox)對象的事件與方法打開【例2.4】 用于文本原樣輸出,如圖所示。KeyPress事件:當(dāng)用戶按下并且釋放鍵盤上的一個(gè)鍵時(shí),所觸發(fā)的事件,此事件會(huì)返回一個(gè)鍵ASCII值。如: Private Sub Text1_KeyPress(KeyAscii As Integer) Print
30、KeyAscii End SubGotFocus事件、LostFocus事件:GotFocus事件表示一個(gè)對象獲得焦點(diǎn)時(shí)觸發(fā)。反之,LostFocus事件表示丟失焦點(diǎn)時(shí)所觸發(fā)的事件,常用用于對數(shù)據(jù)更新進(jìn)行驗(yàn)證和確認(rèn)。 Alignment 、Left、 Top、Width 、Height、Visible、Enabled 屬性與文本框、命令按鈕的意義相同。Name:對象名。AutoSize和WordWrap :這兩個(gè)屬性決定標(biāo)簽大小是否隨顯示的文本內(nèi)容變化,以及變化時(shí)是垂直還是水平擴(kuò)展。Caption:標(biāo)簽上顯示的文字內(nèi)容??梢允褂谩?”來為標(biāo)簽創(chuàng)建快捷鍵。標(biāo)簽本身并不能擁有輸入焦點(diǎn)。當(dāng)用戶按快捷
31、鍵時(shí),會(huì)把焦點(diǎn)傳遞給Tab鍵次序中下一個(gè)可擁有焦點(diǎn)的控件。 與文本框的Text屬性不同,標(biāo)簽控件Caption屬性的值不能由用戶直接修改,但可以由程序修改。BorderStyle:01。當(dāng)此屬性為1時(shí),標(biāo)簽有邊框。默認(rèn)值為0,即無邊框。標(biāo)簽可以用來對其它沒有標(biāo)題的控件(如文本框)進(jìn)行說明,也可用來顯示一些程序運(yùn)行過程中的提示信息。標(biāo)簽對象顯示的內(nèi)容不能由用戶直接修改,但由程序代碼修改。常用屬性十五、標(biāo)簽(Label)對象 標(biāo)簽控件支持:Move方法、Click事件、DblClick事件與Change事件。其中:當(dāng)標(biāo)簽Caption屬性值變化時(shí),引發(fā)Change事件。 因?yàn)闃?biāo)簽控件主要的作用是描
32、述其他控件,顯示的是形態(tài)文本。一般情況下,不必編寫其事件過程。Label對象的常用事件和方法打開【例2.5】 顯示作者姓名和年齡,如右下圖所示。打開【例2.6】 綜合示例,如左圖所示。 字母的大小寫問題,關(guān)鍵字 語句:程序以語句為單位,一般情況下,一條語句占一行。 續(xù)行:如果語句太長,可以分為連續(xù)的多行書寫,這時(shí),未完的行要以空格與下劃線(稱為“續(xù)行符”)結(jié)尾。注意分行時(shí)要避開關(guān)鍵字、對象名、過程名。如:lblMyFirst.Caption= lblMyFirst.Caption _+12313 一行中寫多條語句:要在一行中寫多條語句,可在多條語句之間插入冒號作為分隔。如:txtFirst.T
33、ext=“Hello” : frmOpen.Top=1000 : frmOpen.Left=1200 注釋:可在程序中加入以單引號開頭的解釋性的文字,單引號為“注釋符”,這些文字為注釋內(nèi)容。注釋內(nèi)容在程序執(zhí)行時(shí)被忽略。注意:在續(xù)行符后不能寫注釋。如: 這是2009年2月16日編寫的,整行注釋也可使用Rem txtMy.Text = 您好! 在文本框中向用戶問好 行號與標(biāo)號 英文符號與中文符號 使用中文時(shí)要使用半角標(biāo)點(diǎn)符號。 程序行的縮進(jìn),與源程序的美觀十六、Visual Basic 語法規(guī)則十七、Visual Basic開發(fā)程序的主要步驟進(jìn)入VB集成開發(fā)環(huán)境添加對象,編寫代碼保存打開源程序*.
34、vbp、*.frm*.frx、*.bas文件解釋性試運(yùn)行編譯可執(zhí)行文件*.exe文件完成未完成或出錯(cuò)預(yù)備工作建立界面設(shè)置屬性編寫代碼、進(jìn)行調(diào)試編譯十八、工程中的模塊與文件 為編制一個(gè)應(yīng)用程序而創(chuàng)建的所有源文件統(tǒng)稱為一個(gè)“工程”(Project)。一個(gè)工程有一個(gè)工程文件(vbp,vbw),另外還有多個(gè)模塊文件。窗體模塊窗體模塊包含窗體及其控件的定義、屬性設(shè)置,以及代碼窗口中的程序行。窗體文件的擴(kuò)展名為 .frm ,如果設(shè)置了對象的ICO或Picture屬性,會(huì)生成同名的.frx文件。標(biāo)準(zhǔn)模塊 標(biāo)準(zhǔn)模塊包含數(shù)據(jù)類型、常數(shù)、變量、外部過程和公共過程的公共的或模塊級的定義。標(biāo)準(zhǔn)模塊文件以 .bas為文
35、件擴(kuò)展名。 還可能用到其他類型的模塊。保存工程時(shí)先提示保存各模塊文件,最后提示保存工程文件。打開工程時(shí),直接打開工程文件即可。應(yīng)該將一個(gè)工程中的所有文件保存在同一個(gè)文件夾中,便于管理。不能在VB集成環(huán)境之外移動(dòng)工程中的模塊文件或?qū)ζ溥M(jìn)行重命名。這樣會(huì)導(dǎo)致工程無法打開。十九、保存和打開工程二十、生成可執(zhí)行文件通過“文件”菜單中的“生成”命令可執(zhí)行文件.exe??芍付蓤?zhí)行文件名和保存位置??蓤?zhí)行文件可脫離源程序與VB環(huán)境單獨(dú)運(yùn)行??蓤?zhí)行文件需要一些中間文件的支持才能運(yùn)行。顯示作者姓名和年齡,如下圖3所示。綜合示例,如圖4所示。用于文本原樣輸出,如圖3中所示。驗(yàn)證課程例子,如圖1所示。設(shè)計(jì)一個(gè)窗體
36、,窗體上有“放大”、“加粗”、“下畫線”、“還原”和“移動(dòng)”5個(gè)命令按鈕和一個(gè)顯示“VB程序設(shè)計(jì)”的標(biāo)簽。單擊命令按鈕可實(shí)現(xiàn)標(biāo)簽文字的放大、加粗、下畫線、還原和移動(dòng)功能。單擊按鈕可移動(dòng)窗體。返回目錄二十一、實(shí)驗(yàn)補(bǔ)充題1234第3章 數(shù)據(jù)類型、常量與變量 數(shù)值型類型名中文名類型符字節(jié)表示范圍精度Integer整型 2-3276832767精確Long長整型&4-2147483648 2147483647精確Single單精度浮點(diǎn)型!4-3.402823E 10-38 3.402823 10387位有效數(shù)字Double雙精度浮點(diǎn)型#8-1.7976931348623210-308 1.797693
37、13486232 10308 15位有效數(shù)字Currency貨幣型8-922337203685477.5808 922337203685477.580715位整數(shù),4位小數(shù)Byte字節(jié)型10255精確一、基本數(shù)據(jù)類型 在計(jì)算機(jī)中,數(shù)據(jù)沒有大小和類別,是用一定位數(shù)的二進(jìn)制數(shù)碼表示的一種符號編碼,這類似18位的身份證或?qū)W生證號,占同樣大小的存儲(chǔ)空間。不加快計(jì)算機(jī)的處理速度和節(jié)省存儲(chǔ)空間,VB中將數(shù)據(jù)分為不同類型。 字符串是指連續(xù)的字符序列。字符串?dāng)?shù)據(jù)類型是專門用來存放文字信息的。字符串型又分為“定長字符串型”和“變長字符串型”兩大類。字符串類型所占的內(nèi)存空間大小 與字符串長度有關(guān)。變長字符串型類型
38、符號是“$”。String(字符串型) Boolean類型的數(shù)據(jù)只可能有兩個(gè)值:True(邏輯“真”)和False(邏輯“假”),用來表示“是”與“否”、“開”與”關(guān)”、“對”與”錯(cuò)”這類只有兩種取值的情況。一個(gè)邏輯型數(shù)據(jù)卻要占2個(gè)字節(jié)的存儲(chǔ)空間。 Date類型又稱為日期型,這種類型的數(shù)據(jù)可以存放日期信息、時(shí)間信息或者同時(shí)存放日期與時(shí)間信息。Date類型數(shù)據(jù)用8個(gè)字節(jié)來表示日期和時(shí)間(公元100年1月1日9999年12月31日) 。Boolean(邏輯型、布爾型)Date(日期時(shí)間型) Object(對象型)和Variant(變體類型),將分別在后面節(jié)中講解。Object(對象型)和Varia
39、nt(變體類型), 十進(jìn)制:1、20、500、-101 、230594、12%、234& 八進(jìn)制:&O11、&O123、&O321&錯(cuò)誤:&081及&O88 十六進(jìn)制:&H11、&HFF 以&結(jié)尾發(fā)長整型 錯(cuò)誤:&HFR二、各種數(shù)據(jù)類型的直接常量 普通記法:1.2、-1.4、4.5!、-5.67# 科學(xué)記法:1.2E10、-1.23E-3錯(cuò)誤:1.2E1.4、E4、12E 字節(jié)型、整型、長整型精度浮點(diǎn)型 只有兩個(gè)取值:True、False 邏輯型 使用“#”號作界定符: #1/1/2005#、#April 1, 2005#、#1:00:00PM#、#1-1-2005 13:30:45# 日期型
40、 使用雙引號“” “”,將指定的字符串界定起來,如:“ Visual Basic ” 、 “你好!”。 特殊的字符串: “ ” “ ”表示一個(gè)雙引號, “ ”表示空字符串。字符串常量中的雙引號必須成對出現(xiàn)。字符串本身包括雙引號時(shí),必須用兩個(gè)連續(xù)的雙引號表示,如“V“”B”,則表示V”B,又如“”“Are You from chengDU?”,he asks.”。字符串型變量:在程序執(zhí)行過程中存儲(chǔ)臨時(shí)數(shù)據(jù)的命名內(nèi)存單元。變量名:程序是通過變量名來保存和訪問相應(yīng)內(nèi)容單元中的值的。在VB中變量名有如下規(guī)則:(1) 以字母開始,可以包括字母、數(shù)字和下劃線;(2) 不能包含標(biāo)點(diǎn)符號;(3) 不能多于25
41、5個(gè)字符;(4) 不能與保留關(guān)鍵字重復(fù)(如:End、Private、Sub) ;(5) 在同一作用域中,變量名不能重復(fù)。變量的數(shù)據(jù)類型:數(shù)據(jù)類型決定變量占用內(nèi)存的大小、數(shù)據(jù)處理的方式、表示值的范圍。定義變量: Dim|Static|Private|Public 變量名 As 數(shù)據(jù)類型名如: Dim x1 As Integer 定義x1為整數(shù)型變量 Static C1 As Long Dim d As Date,f1 as Single,f2# 分別定義d、f1和f2為日期型、單精度和雙精度變量 Private S1 As String (定義變長字符串變量) Private S2 As Str
42、ing *4 (定義定義長字符串變量)變量賦值:通過以下形式的語句為變量賦值。 Let 變量名= 表達(dá)式 賦值語句的作用是把一個(gè)表達(dá)式的值賦予一個(gè)變量,即保存到變量所占的內(nèi)存空間。被賦值之后變量舊值被覆蓋,變?yōu)樾轮?。被賦的新值的類型和大小應(yīng)與變量的數(shù)值類型相一致,否則會(huì)出錯(cuò)。 另外,在過程、函數(shù)調(diào)用過程時(shí),可以通過參數(shù)傳遞的方式為被調(diào)用過程中的變量賦值。三、變量 也稱為“局部變量”,在過程中定義,作用域?yàn)樗诘倪^程。定義過程級變量的方法有兩種: Dim 變量名 AS 數(shù)據(jù)類型名動(dòng)態(tài)局部變量 Static 變量名 AS 數(shù)據(jù)類型名靜態(tài)局部變量如: Dim a As Integer 使用Dim關(guān)鍵
43、字定義的局部變量只在定義它的過程執(zhí)行時(shí)存在,過程執(zhí)行完變量即消失。下一執(zhí)行該過程時(shí),會(huì)重新生成變量,重新初始化。 使用Static關(guān)鍵字定義的局部變量稱為“靜態(tài)變量”,它在整個(gè)程序的運(yùn)行過程都存在,但是只能被定義它的過程所用。每次執(zhí)行不重新進(jìn)行初始化??梢栽谝粋€(gè)過程的多次執(zhí)行之間保持其值。 注:不能在過程中聲明公用變量,只能在模塊(窗體給和標(biāo)準(zhǔn)模塊)的聲明段中聲明公用變量。四、變量的作用域 變量的作用域決定一個(gè)變量在什么代碼范圍內(nèi)可以被訪問。定義變量時(shí)所使用的關(guān)鍵字以及定義變量的位置決定了變量的作用域。引用變量的值:將變量名寫到表達(dá)式中、過程函數(shù)實(shí)參表中,實(shí)際上就是對變量的值進(jìn)行引用。如下式中
44、,是將變量b和c的值求和后賦給變量a。a 的值變?yōu)樾轮?,b和c的值被引用,并未改變。 a=b+c 過程級變量 打開【例3.1】使用過程級變量,在中使用局部和靜態(tài)變量。 在模塊或模塊頂部的“通用聲明段”中定義,在該模塊中的所有過程中可用。 定義的方法(兩種方法等價(jià)) : Dim 變量名 As 類型名 Private 變量名 As 類型名如: Private d As Date Private S1 As String (定義變長字符串變量) Private S2 As String *4 (定義定義長字符串變量) 一個(gè)定長字符串變量所占的內(nèi)存空間是一定的,當(dāng)其中的字符信息沒達(dá)到這個(gè)長度時(shí),所剩的
45、空間用戶“空格“填充。如果給定長字符串變量賦一個(gè)超過其長度的字符串,會(huì)被截掉多余部分,不會(huì)出現(xiàn)“溢出”錯(cuò)誤。模塊級(窗體級或模塊級)變量 應(yīng)用程序級變量 定義:也稱為“全局變量”或“公共變量” ,在標(biāo)準(zhǔn)模塊頂部的“通用聲明段”中使用Public(Global)關(guān)鍵字定義。全局變量在程序(即同一個(gè)工程中)的所有模塊中皆可用。 Public 變量名 As 類型名如:Public p As Boolean 注:不能在窗體模塊中定義全局定長字符串變量。打開【例3.2】使用模塊級變量,模塊(或窗體)級變量的定義和使用。 打開【例3.3】為模塊級變量賦初值(可在Load事件中進(jìn)行)。 引用 一個(gè)應(yīng)用程序的
46、結(jié)構(gòu)如右圖所示。訪問另一個(gè)模塊(窗體)中定義的全局變量,應(yīng)在變量名前加模塊名修飾。如 F1 = 2 在沒有重名的情況下,訪問標(biāo)準(zhǔn)模塊中的全局變量,不必加模塊名。 數(shù)值型變量的默認(rèn)值為0; 邏輯型變量的默認(rèn)值為False;日期時(shí)間型變量的默認(rèn)值為#0:00:00#;變長字符串變量的默認(rèn)值為空字符串;定長字符串變量的默認(rèn)值是全部由空格組成的字符串,空格個(gè)數(shù)等于定長字符串的字符個(gè)數(shù);對象型變量的默認(rèn)值為Nothing;變體類型變量的默認(rèn)值為Empty。四、變量的默認(rèn)值 變量被定義之后,在第一次賦值之前,并不是沒有值的,而是具有默認(rèn)值。五、強(qiáng)制變量定義 默認(rèn)情況下,所有未出現(xiàn)過程的標(biāo)識(shí)符,都被VB當(dāng)成
47、變體類型的變量。這樣,使得程序不容易調(diào)試,可以在模塊聲明段中加上: Option Explicit使得所有的變量必須定義才能使用。 對象型變量占用4個(gè)字節(jié)共32位的內(nèi)存空間,保存的是某一個(gè)對象的引用(即內(nèi)存中的地址),程序?qū)ο笮妥兞康牟僮鞯扔趯λ脤ο蟮牟僮?。對對象型變量賦值要用Set語句。對象型變量在被定義但未被賦值時(shí)的值是一個(gè)特殊值:Nothing。 例如,右圖所示: Private Sub Command1_Click() Dim a As Object Set a = Form1 a.Font = “楷體_gb2312”:a.FontSize = 16 a.Caption = 對
48、象變量的使用 Print a.Caption End Sub Object類型的變量可以引用任何一種類型的對象。如果在使用中,一個(gè)變量只引用一種特定類型的對象時(shí),就可以將該變量定義為此特定類的對象型變量。定義特定類型對象型變量,要使用對象的類型名,如已學(xué)習(xí)過的:Form、Textbox、CommandButton、Line、Shape等。例:Dim obj2 As CommandButtonSet obj2=cmdOK : obj2.Caption=Hello! 注:對象型變量沒有默認(rèn)值,定義之后未賦值之前不能使用。特定類型對象型變量只能引用同一類型的對象。例:Dim obj3 As Form
49、:Set obj3 =cmdOK (錯(cuò)!)八、對象型數(shù)據(jù)類型(Object) 變體類型變量可以存貯幾乎所有系統(tǒng)定義類型的數(shù)據(jù)(除定長字符串和用戶自定義類型)。把其它類型的數(shù)據(jù)賦給變體變量,變體變量的類型會(huì)隨之變化,適應(yīng)新的值。變體變量在存放數(shù)值時(shí),占16字節(jié)的內(nèi)存;存放字符串時(shí),占用22字節(jié)的內(nèi)存(加字符串長度)。例:Dim vnt1 As Variant (定義)vnt1=“17” (為字符型“17”)vnt1=vnt1-15 (為數(shù)值型,值為 2) 變體變量類型是默認(rèn)類型,在定義變量時(shí)可以省略“As Variant”。變體變量也可以引用對象,賦值時(shí)須使用Set語句。 例:Dim vnt2(
50、定義)vnt2=1234(為數(shù)值型1234)Set vnt2=Command1 (對象型,對cmdOK的引用) Variant變量有二個(gè)的特殊的取值:Empty、Null。 Empty:一個(gè)變體變量可以在下列兩種情況下具有Empty值:尚未賦值時(shí);被賦予Empty值之后。把Empty值賦給一個(gè)數(shù)值型變量時(shí)被理解為0,賦給一個(gè)字符串時(shí)被理解為空字符“”。 Null:主要用于對數(shù)據(jù)庫的操作,表示數(shù)據(jù)未知或數(shù)據(jù)不確定。Null值有如下特點(diǎn):如表達(dá)式的任何一部分是Null,則整個(gè)表達(dá)式的值也為Null;把Null值作為參數(shù)傳遞給一個(gè)函數(shù),則函數(shù)的返回值為Null??山o一個(gè)變體變量賦值 Null。Nul
51、l與其本身不相等。九、變體類型(Variant) VB允許不同類型的變量之間相互賦值,也允許把不同類型的值賦予某種類型的變量,VB會(huì)自動(dòng)將所賦予的值轉(zhuǎn)換為被賦值的變量的類型。 數(shù)值型變量的賦值 數(shù)據(jù)型變量之間可以相互賦值。浮點(diǎn)數(shù)轉(zhuǎn)換為整型數(shù)時(shí),小數(shù)部分“四舍五入”為整數(shù)(其中0.5要向最近的偶數(shù)靠攏),如i=4.5,轉(zhuǎn)換后為4。 字符串變量 字符串變量中存貯的是數(shù)值信息,則可以將其賦予數(shù)值型變量。包括非數(shù)值字符的字符串(如有字母、標(biāo)點(diǎn)符號)不能賦值給數(shù)值型變量,否則出現(xiàn)“類型不匹配”錯(cuò)誤。 邏輯型變量 邏輯變量的值賦給數(shù)值型變量,F(xiàn)alse轉(zhuǎn)換為0,True轉(zhuǎn)換為-1。數(shù)值型變量的值賦給邏輯變
52、量,0轉(zhuǎn)換為False,其它值轉(zhuǎn)換為True。 日期時(shí)間型變量 期時(shí)間型變量賦給數(shù)值型變量時(shí),日期部分轉(zhuǎn)換為數(shù)值的整數(shù)部分,值為此日期距1899年12月30日的天數(shù);時(shí)間部分轉(zhuǎn)換為小數(shù)部分,從零時(shí)到該時(shí)間占一整天的比例,12:00:00轉(zhuǎn)為0.5。 例:dtm3=#3/18/1999 6:00:00# : sng2!=dtm sng2的值為“36237.25” 問題:#0:00:00#表示是哪一天的時(shí)間? 所有的類型值均可以轉(zhuǎn)換為字符串值 日期時(shí)間型變量轉(zhuǎn)換為字符串時(shí),按照日期的短格式字符串。可以使用類型轉(zhuǎn)換函數(shù)進(jìn)行顯式轉(zhuǎn)換。轉(zhuǎn)換規(guī)則與上述默認(rèn)轉(zhuǎn)換相同。 以上是隱式轉(zhuǎn)換,也可通過轉(zhuǎn)換函數(shù)i3=
53、Cint(123.5) ,結(jié)果為124,等函數(shù)進(jìn)行顯示轉(zhuǎn)換。十、類型轉(zhuǎn)換 符號常量是指使用一個(gè)名稱代表在程序運(yùn)行過程中其值一直保持不變的量。符號常量的作用有:便于記憶與識(shí)別,可使用一個(gè)具有描述性的名字替代一個(gè)抽象的值;便于修改,如果要改變常量所代表的值,只需在定義常量的地方修改即可。 常量的定義方法: 過程級常量:在過程中定義 Const 常量名 As 類型名=表達(dá)式 模塊級常量:在模塊的聲明段中 Private Const 常量名 As 類型名=表達(dá)式 全局常量:在標(biāo)準(zhǔn)模塊的聲明段中 Public Const 常量名 As 類型名=表達(dá)式 符號常量的命名規(guī)則與變量相同,一般使用con前綴或大
54、寫字母加以區(qū)別。在程序運(yùn)行過程中,不能再為符號常量賦值。例如,定義全局常量PI: Public Const PI As Double = 3.1415926則,在過程中可以引用符號常量的值: s = PI *r *r 注意:不能在窗體模塊和類模塊中定義全局常量,只能在標(biāo)準(zhǔn)模塊中定義。十一、符號常量不允許同名的情況 一般情況下,在同一作用域內(nèi)不能定義重名的變量。 同一個(gè)過程中不能定義同名過程級變量,既使類型不相同也不能同名。 同一個(gè)模塊中不能定義同名的模塊級變量。在窗體模塊中,窗體的屬性、控件、過程和模塊級變量是同一層次的,故它們之間不能重名。 同一個(gè)模塊中不能定義同名的模塊級變量和全局變量。
55、十二、變量重名問題 多個(gè)標(biāo)準(zhǔn)模塊中不能有重名的全局變量。允許同名的情況 不同的過程中可以定義同名的過程級變量;不同的模塊中可以定義同名的模塊級變量;過程中可以定義與模塊級變量同名的過程級變量;過程中可以定義與全局變量同名的過程級變量;模塊中可以定義與其他模塊定義的全局變量同名的模塊級變量;不同的模塊中可以定義同名的全局變量。變量的使用 不同作用域的變量同名時(shí),作用域小的變量會(huì)屏蔽作用域大的變量,即過程級變量屏蔽模塊級和全局變量,模塊級變量屏蔽全局變量。例如,在例3.2中,按鈕事件過程中的變量i屏蔽模塊級變量i,過程中被訪問的i實(shí)際上是過程級變量。 如果不同模塊中全局變量同名,訪問其他模塊中定義
56、的全局變量時(shí)應(yīng)添加模塊名進(jìn)行限定(形式為“模塊名.變量名”)。訪問本模塊或標(biāo)準(zhǔn)模塊中定義的全局變量時(shí)不必進(jìn)行限定。如果本模塊與標(biāo)準(zhǔn)模塊中的全局變量同名,訪問標(biāo)準(zhǔn)模塊中的全局變量時(shí)也應(yīng)加模塊名進(jìn)行限定。當(dāng)全局變量與過程級變量同名時(shí),在過程中直接使用這個(gè)變量名時(shí),指的是過程級變量。如果使用定義全局變量的模塊名來限定變量名,則可訪問該全局變量。如果本模塊中的模塊級變量與其他模塊中的全局變量同名,可以在變量名前加模塊名來訪問全局變量。 過程中的局部變量比過程低一級,所以,與控件同名的局部變量會(huì)屏蔽控件,如要訪問該控件,要用窗體名來限定。 在窗體模塊中,要用窗體名來限時(shí),窗體名都可以用關(guān)鍵字“Me”來代
57、替。在窗體模塊中,如果沒有重名,對窗體屬性的修改、方法的調(diào)用可以省去窗體名或“Me”的限定。 如:在frmFirst模塊中如無變量、控件與窗體重名,frmFirst.Top=0 等價(jià)于 Top=0定義變量要盡量避免重名;能定義小范圍的變量就不要定義大范圍的變量。十二、變量重名問題*1、簡易計(jì)算器(左下圖)。2、求圓的周長和面積(右下圖)。3、打印如右圖所示的圖形。提示:Private Sub Form_Click() For i = 1 To 5 Print Tab(i);String(6-I,);Spc(6);String(I,) Next iEnd Sub考慮:若把Spc(6)換成Tab(
58、6),效果如何?返回目錄十三、實(shí)驗(yàn)補(bǔ)充題第4章 運(yùn)算符與表達(dá)式 “運(yùn)算符”(Operator)是代表某種運(yùn)算的符號。用運(yùn)算符把變量和常量連接起來形成“表達(dá)式”(Expression)。每一個(gè)表達(dá)式都有一個(gè)值,即計(jì)算結(jié)果,稱為表達(dá)式的值。算術(shù)運(yùn)算符對數(shù)值進(jìn)行運(yùn)算,計(jì)算結(jié)果也是數(shù)值。運(yùn)算符作用示例結(jié)果注指數(shù)運(yùn)算238 -取負(fù)數(shù)-1-1 ? -24 顯示-16 * 乘法運(yùn)算2*36 /除法運(yùn)算5/22.5 整除運(yùn)算522只用于整數(shù)Mod求余運(yùn)算 5 Mod 2 1只用于整數(shù)+加法運(yùn)算2+35-減法運(yùn)算2-3-1一、運(yùn)算符算術(shù)運(yùn)算符字符串運(yùn)算符 字符串連接運(yùn)算符和& :將兩個(gè)字符串首尾相連為一個(gè)字符串
59、。因?yàn)樘栍质撬阈g(shù)運(yùn)算符,所以使用號可能引發(fā)歧義。所以應(yīng)使用&進(jìn)行字符串連接。 崇尚科學(xué)、 & 追求真知。 運(yùn)算結(jié)果為崇尚科學(xué)、追求真知。 團(tuán)結(jié)獻(xiàn)身 + 求是創(chuàng)新 運(yùn)算結(jié)果為團(tuán)結(jié)獻(xiàn)身求是創(chuàng)新 30 & 15 運(yùn)算結(jié)果為3015 30 + 15 運(yùn)算結(jié)果為3015 30 & 15 運(yùn)算結(jié)果為3015(先將整數(shù)轉(zhuǎn)換為字符串) 30 & 15 運(yùn)算結(jié)果為3015(先將整數(shù)轉(zhuǎn)換為字符串)字符串比較:字符串的大小是按字符順序按字符的內(nèi)碼(ASCII碼和國標(biāo)碼)逐個(gè)進(jìn)行比較。字符串的比較不是比較長度。例如: “ ab ” “ ac ” (False) “ ab ” “ abc ” (False) “ ab
60、” = “ ab ” (True) “ ab ” “ AB ” (True) “ 2000 ” “ 400 ” (False) 中 “Zhong” (True) 通用聲明區(qū)中,用下面語句可設(shè)置可以決定英文比較時(shí)是否考慮大小寫。 OptionCompareBinary|Text 其中:Text時(shí)不區(qū)分大小寫,Binary(默認(rèn)值)時(shí)區(qū)分大小寫。運(yùn)算符意義例子結(jié)果=等于2=4False4=4True 不等于45True44False小于2.5大于35False35True =小于或等于3=5True4=大于或等于4=4True3=5False 比較運(yùn)算符用來對兩個(gè)數(shù)值的大小進(jìn)行比較,如果滿足運(yùn)算符
溫馨提示
- 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)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)產(chǎn)品進(jìn)出口貿(mào)易合同模板
- 大型賽事場館租賃合同
- 國內(nèi)礦石購銷合同范例
- 中介管理房屋合同范例
- 吳江區(qū)工程合同范本
- 型鋼集中采購合同范本
- 場地承包轉(zhuǎn)讓合同范本
- 賣掛車手續(xù)合同范本
- 二押合同范本
- 語義計(jì)算模型-深度研究
- 2025年黑龍江農(nóng)業(yè)工程職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫完整版
- 2025年湖南環(huán)境生物職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫匯編
- 2025年廣西南寧市公安局警務(wù)輔助崗位招聘2364人歷年高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 2024年中國農(nóng)業(yè)大學(xué)招聘筆試真題
- 課件:以《哪吒2》為鏡借哪吒精神燃開學(xué)斗志
- 2025年貴安發(fā)展集團(tuán)有限公司招聘筆試參考題庫含答案解析
- berg平衡評定量表
- 中央空調(diào)維保方案
- 我是家里的小主人
- 中國高血糖危象診斷與治療指南-
- 《醫(yī)療機(jī)構(gòu)基本標(biāo)準(zhǔn)(試行)》2017版
評論
0/150
提交評論