版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
代碼基礎(chǔ):
變量的簡單定義格式:dim變量名這種定義未指明變量的數(shù)據(jù)類型,這時的變量類型是"
變體類型”,它自動識別字符串或數(shù)字(字符串要加引號)。
數(shù)據(jù)類型的定義方法:
定義變量最簡單的方法是用“Dim”關(guān)鍵字,它的語法:
Dim【變量名】As【數(shù)據(jù)類型】
如:DimIndexAsInteger
也可以在一行中定義多個變量,如:
DimIndexAsInteger,NumberAsLong
但把多個變量定義成同一類型不能寫:
DimIndex,NumberAsInteger,這樣實際index是變體變量。
有時為了簡便,也以符號進行簡單的定義,作用是和上面一樣的。整型可以用“%”代替,長
整型可以用代替,單精度可以用"!”,雙精度實型可以用"#"定義,字符型用如剛才的
第一個例子可以寫成:
DimIndex%等價于DimIndexAsInteger
對于常量的定義用Const定義,如:ConstCOLOR=255。
constPI=3.1415926
注:變量一般用小寫,常量則全部大寫。
對于程序中經(jīng)常出現(xiàn)的數(shù)值,應(yīng)設(shè)常量,這樣一是書寫方便,其二,如果要改變該數(shù)值,只
需改變定義常量的語句值,而不需改變每個語句,提高了效率。
重點筆記:變量
變量名要以字母開頭,在變量名中唯一能用的符號是下劃線(_),相同的大寫或小寫字母的
變量,視為同一變量,即不區(qū)分大小寫。
變量的作用范圍關(guān)健字:Public(公用),Private(單個模塊),Dim(局部);在VB代碼區(qū)
域中包含四類模塊區(qū)域:窗體,MDI窗體,標(biāo)準(zhǔn)模塊,類模塊。這是第一層;每一模塊區(qū)
域又分成了通用區(qū)域和過程區(qū)域,這是第二層。這就是VB的結(jié)構(gòu),各個區(qū)域之間界線分明。
變量受這些因素的影響也要采用不同方式,標(biāo)明它的作用范圍是全局還是單個模塊還是單個
過程。
1,在單個事件過程中可見的:在本過程內(nèi)部用DIM關(guān)健字;
2,在單個模塊中可見的:在本模塊頂部(窗體模塊會標(biāo)明"通用"字樣)聲明段用Private關(guān)
健字(也可用DIM關(guān)健字);注意,不能在一個過程內(nèi)部聲明模塊級變量。
3,在所有模塊可見的:在任一模塊頂部(窗體模塊會標(biāo)明”通用“字樣)聲明段用Public關(guān)
健字,注意:1,在Form窗體模塊頂部的“通用”部分不能聲明public的數(shù)組,常數(shù),結(jié)構(gòu)類
型和API函數(shù)。2,在一個過程的內(nèi)部不能聲明公用變量。
在一個事件中用DIM聲明的局部變量,每次觸發(fā)時產(chǎn)生,完成后消失,不會保留事件運行
后的值;如果要一直保留一個局部變量的值,要使用-靜態(tài)變量.在過程內(nèi)部用static關(guān)健
字聲明,它能在第二次觸發(fā)該事件時保留前一次運行結(jié)果,繼續(xù)運算,而不會來個"重新DIM,
初始化”,它只在運行時第一次觸發(fā)該事件時進行初始化。
注:靜態(tài)變量如果要初賦值,不能直接進行,要根據(jù)變量未賦值的狀態(tài)使用if語句,如Ixn
為變體變量:iflxn=EMPTYthenlxn=336525,例下:
PrivateSubCommandl_Click()
StaticIxnAsInteger
Ixn=5錯??!應(yīng)改為IfIxn=0ThenIxn=5
Ixn=Ixn+1
PrintIxn
EndSub
變量的數(shù)據(jù)類型:
一,數(shù)值型。
1,整型(integer),聲明字符%,范圍-32768到32768。占用2字節(jié)。
2,長整型(long),聲明字符&,范圍-2147483648到2147483648。占用4字節(jié)。
3,單精度實型(single),聲明字符!,小數(shù)點后有效數(shù)字7位,占用4字節(jié)。
4,雙精度實型(double),聲明字符#,小數(shù)點后有效數(shù)字15位,占用8字節(jié)。
5,貨幣型(currency),聲明字符(Email地址中的那個at號"小老鼠"),這種類型精度高,
專用于貨幣計算或定點計算,小數(shù)點后有效數(shù)字4位,占用8字節(jié)。
6,字節(jié)型(byte),存儲0--255之間的整數(shù),常用來存儲二進制數(shù)據(jù),圖形和聲音文件等,
它只占1個字節(jié),節(jié)省資源!
二,字符串型(string),聲明字符$.
1,變長字符串變量,平常定義的如:dim(public)1xnasstring,運行時自動調(diào)整長度。
2,定長字符串變量,定義如:dim(public)lxnasstring*50,這時Ixn被定義為包含50個字符
的變量,給它賦值時若少于50個字符,則用空格補足(要刪除空格用Trim和RTrim函數(shù)),
多于50個則刪掉。使用定長字符串的情形如在隨機文件的讀寫操作中,注:定長字符串不
能在類模塊中定義為公用(public)變量。
三,日期型(date)
任何可辯認(rèn)的文本日期都可賦值給date變量,日期文字前后要加上#號,或直接用文本定義,
格式:dim變量名asdate.
dimIxnasdate
賦值格式:變量=#(或')月/日/年/時:分:秒AM或PM#(或")
lxn=#06/14/0120:50:31AM#或
lxn="06/14/018:50:31PM"
如果是一個數(shù)值直接賦給日期型變量,如lxn=35477.998,則小數(shù)點左邊的值代表日期信息,
小數(shù)點右邊的值代表時間信息(如午夜為0中午為0.5),上面Ixn的時間值顯示為97-2-16
23:57:07.(我沒看懂)。
四,邏輯型(boolean)
也叫布爾型變量,它只有兩個值:true(-l)和false(O).[問題:當(dāng)為true時值是1還是一1?我
試了?一下是一1,即用printcint(x)試的。]
五。變體型(variant)
可適用于各種數(shù)據(jù)類型,一個沒有指明類型的變量VB就指定為此類型。
六,對象型(object或commandbutton或textbox等對象名,模塊名)
這種變量為指向程序中對象的指針,先聲明為某類型對象,格式:
dim變量as對象類型名(如果對象為object,則表示可指向任何類型對象)dimIxnas
commandbutton(定義Ixn為按紐對象類指針),
賦值格式:set變量名=對象名稱
Setlxn=command1
這時,就可以用Ixn來代替command1了,如:lxn.caption="退出"
注:如果加上New關(guān)健字,可以新建窗體,類模塊,對象庫中的對象,對象變量就成了1
個對象。Set變量名=New對象名稱。
七,自定義類型,也叫結(jié)構(gòu)類型。
第1步:建立類型:必須在模塊級用type語句定義,格式:
private(或public)type類型名
成員1as類型
成員2as類型……
endtype
如:privatetypeIdd
aasstring
basinteger
casstring
endtype
第2步:定義此類型的一個變量:格式:
dim(或public等)變量名as剛才創(chuàng)建的類型
如:dimIxnasIdd
第3步:變量的賦值及使用:用點號連接每一個成員,分別賦值,賦值格式:
變量.成員1=值
變量.成員2=值……
如:lxn.a="李小敏"
lxn.b=336525
lxn.c="李新寧"
凡是在程序中使用時,就要以“變量.成員名”來引用。
八,枚舉類型。在模塊通用部分聲明,格式:
Private(Public)Enum類型名privateenumIxn
成員1(可選=常數(shù))李新寧
成員2(=常數(shù))……李小敏
endEnumendEnum
然后在程序中定義一個此類型變量,Dim變量as類型。如:dimmasIxn
意思是:變量m的"取值范圍”是:李新寧(值為0)或李小敏(值為1)
"值為0"?不給成員賦值,缺省狀態(tài)時第1個成員為0(相當(dāng)于寫:李新寧=0)
第2個成員為1…類推,總之成員的值為一個“長整數(shù)”。可自己賦給。枚舉類型的作用是在
代碼中可簡化某些總在幾個值之間切換的情況,引用如寫ifm=李新寧thenend
(這種類型實用價值不大)。
變量數(shù)據(jù)類型的轉(zhuǎn)換,有以下函數(shù):
cbool(字符串或數(shù)值表達式)--返回布爾類型,如:a=2:b=2:lxn=cbool(a=b)
那么Ixn值為true
cbyte(O到255的整數(shù))一返回BYTE類型
ccur(參數(shù))-返回貨幣型
cdate(一個有效的日期表達式)-轉(zhuǎn)換為日期型
cint(參數(shù))-返回(或叫轉(zhuǎn)換)integer型,參數(shù)的小數(shù)部分四舍五入
clng(參數(shù))-返回long型,小數(shù)部分四舍五入。
csng(參數(shù))--返回single(單精度)型,
cdbl(參數(shù))一返回double(雙精度)型。
cvar(參數(shù))-返回變體型
cstr(參數(shù))--返回string字符串型。
判斷代碼中一個變量的數(shù)據(jù)類型的函數(shù):vartype(變量名)或typename(變量名),vartype(變
量名)返回一個整數(shù)值,如返回2代表整型,3代表長整型,4代表單精度,5代表雙精度,
7代表日期型,8代表字符串等。例如有個叫Ixn的變量,不知它是什么類型,可用
x=vartype(lxn),如果x等于2就說明Ixn是整型,8就是字符串等等。lypename(變量名)返回
一個該變量類型名的字符串,如Ixn是整型變量,那么typename(lxn)返回值為“integer"字符
串。
★數(shù)組的定義類似于變量定義,所不同的是數(shù)組需要指定數(shù)組中的元素個數(shù),例如:
Dimlxn(99)AsInteger
這個數(shù)組中包含100個元素,下標(biāo)從0到990
也可以指定下標(biāo)的起始值,例如:
Dimlxn(2to10)AsInteger
這個數(shù)組含有九個元素,下標(biāo)從2至U10。
還可以定義多維數(shù)組:
Dimlxn(4,2to5,3to6)AsInteger
上例定義了一個三維數(shù)組(4X4X4)。
★VB算術(shù)運算符:+(加),-(減),*(乘),/(除),\(整除),Mod(取余數(shù)),人(乘
方),&(字符串連接)
算術(shù)運算符優(yōu)先級:()括號;八乘方;-負(fù)號;*。/乘,除;'整除;Mod取余;+,-加,減
VB比較運算符:=(等于),<>(不等于),〈(小于),>(大于),<=(小于等于),>=(大于等于)
邏輯運算符:And:兩邊表達式為真時,結(jié)果為真;
Or:兩邊表達式只要有一個為真時,結(jié)果為真;
Not:后面跟的表達式若為真,結(jié)果為假,后跟表達式為假,結(jié)果為真;
Xor:兩邊表達式一真一假時,結(jié)果為真,若兩邊表達式同真同假,結(jié)果為假。★IF……
THEN語句:
簡單:if條件then語句
復(fù)雜:if條件1then
語句11
語句12
語句13……
elseif條件2then
語句21
語句22
語句23……
elseif條件3then
else
前面條件都不成立時執(zhí)行語句
endif
分支結(jié)構(gòu):selectcase語句
結(jié)構(gòu):selectcase變量(也可以是一個屬性或表達式)
case可能值一(數(shù)值,字符串或其他值)
語句
case可能值二
語句
case可能值三
語句
case可能值四,可能值五,可能值六……(如果有多個可能值都執(zhí)行一條語句,寫在一起,
用逗號隔開)
語句
caseelse(也可以沒有)
語句
endselect
在selectcase語句中可以使用關(guān)系運算符大于,小于〈等于二等關(guān)系運算符,需要用關(guān)鍵字IS
和TO。用個例子來說明:
PrivateSubCommandl_Click()
DimageAsInteger
age=Textl.Text
SelectCaseage
CaseIs<14(如果age小于14時)
Label1.Caption="小朋友,你好!”
Case14To23(如果age在14至lj23時)
Labell.C叩lion="學(xué)生朋友,認(rèn)真讀書吧?!?/p>
Case24(如果age是24時)
Label1.Caption="你和我是同齡人”
CaseIs>100(如果age大于100時)
Label1.Caption="你真是個老不死!”
CaseElse(如果age不滿足以上所有值的范圍時)
Labell.Caption="按道理我要尊重你?!?/p>
EndSelect
EndSub
看會了吧,就照著用即可。
循環(huán)結(jié)構(gòu):FOR……NEXT……語句:
格式:FOR循環(huán)變量=初值TO終值STEP步長
循環(huán)體
NEXT循環(huán)變量
如果在循環(huán)執(zhí)行過程還未結(jié)束時要跳出循環(huán),可用exitfor語句。
例:PrivateSubCommand2_Click()
Dima%,name$
Fora=1To10
name=InputBox,輸入姓名”)
Printname
Ifname=nlxnHThenExitFor
Nexta
EndSub
第二種很重要的循環(huán)結(jié)構(gòu)是:DO循環(huán)
格式:A。DOWHILE條件
循環(huán)體
LOOP
BoDO
循環(huán)體
LOOPWHILE條件
將WHILE條件放在循環(huán)體的前面與后面,是不同的,A格式的條件在前,執(zhí)行時先檢測條
件,為真則執(zhí)行循環(huán),為假則不執(zhí)行循環(huán),如果第一次檢測條件即為假,則一次也不執(zhí)行循
環(huán),B格式的結(jié)構(gòu)WHILE條件在后,能保證不論條件的真假至少能執(zhí)行一次循環(huán)。
例:PrivateSubForm_Load()
Dimhs$,ss%
Do
hs=InputBox("輸入","華氏")-INPUTBOX的提示欄,標(biāo)題欄,它的所有輸入都是字符型
ss=Int((Val(hs)+40)*5/9-40)
MsgBoxss,,"攝氏度"--MSGBOX的輸出內(nèi)容,標(biāo)題欄,無按紐參數(shù)
LoopWhilehs<>""但逗號不能少
end-由于是在formjoad事件中,所以這個end不可丟。
EndSub
上例將華氏溫度轉(zhuǎn)為攝氏度。
★編寫對象的自動拖放操作:
lo將要拖放對象的dragmode屬性設(shè)置為1(這樣就可自動拖動)
20設(shè)置要拖放對象在拖動過程中的圖標(biāo)提示:dragicon屬性。
3。編寫拖放終點對象的dragdrop事件(或dragover事件)過程。
例:將窗體上圖片框1的圖片拖到圖片框2里:
PrivateSubForm_Load()
Image1.Picture=LoadPicture(”c:\我的文檔'mywebs'紅樓夢4.bmp")加載圖片
Image1.DragMode=1對象可移動
Image1.Dragicon=LoadPicture(nc:\ucdos\ico\print.icon)移動時的圖標(biāo)
EndSub
PrivateSubImage2_DragDrop(SourceAsControl,XAsSingle,YAsSingle)
Image1.Visible=False當(dāng)移到圖片框2時,圖片框1隱藏。
Image2.Picture=Image1.Picture將圖片復(fù)制到圖片框2中
EndSub
在image2的dragdrop事件中有三個參數(shù):source和x以及y,source的意思是“源對象”,即
要拖動對象,這里可用它來代替image1,如在事件過程中寫:source.visible=
falseimage2.picture=source.picture
★在窗體中添加簡單的動畫:對象的移動MOVE方法:
要移動的對象.MOVE移動后橫坐標(biāo),縱坐標(biāo),寬度,高度
piclurel.move800,500(單位:堤;1堤=1/1440英寸
用MOVE方法不僅可以移動對象位置,而且可以改變對象的尺寸大小,如下:
對象名.moveleft,top,width,height
Form1.Move5000,0,5000,50(注:單位為堤)
例:PrivateSubForm_Load()
Picture1.Picture=LoadPicture("c:\我的文檔'mywebs'紅樓夢l.bmp")
Timerl.Interval=1
Timer2.Interval=1
Timerl.Enabled=True
Timer2.Enabled=False
EndSub
PrivateSubTimerl_Timer()
IfPicturel.Left>0AndPicturel.Top>0Then
Picture1.Left=Picturel.Left-50
Picturel.Top=Picture1.Top-70
Else
Timer2.Enabled=True
Timerl.Enabled=False
EndIf
Picture1.MovePicturel.Left,Picturel.Top
EndSub
PrivateSubTimer2_Timer()
IfPicturel.Left<5000AndPicturel.Top<3000Then
Picturel.Left=Picturel.Left+50
Picture1.Top=Picturel.Top+70
Else
Timerl.Enabled=True
Timer2.Enabled=False
EndIf
Picture1.MovePicture1.Left,Picturel.Top
EndSub
★添加標(biāo)準(zhǔn)模塊:"工程"菜單"添加模塊"菜單項。module1是缺省模塊名。此名字可在其
屬性窗口中改變(只有此一項“屬性")。標(biāo)準(zhǔn)模塊與窗體模塊并列于一個工程之內(nèi)。
在標(biāo)準(zhǔn)模塊中聲明公用變量(或叫全局變量)格式:
public變量名as類型
publicIxn
在前面我們用DIM定義變量,它們都只是局部變量,即只在某個事件過程中可見,而在標(biāo)
準(zhǔn)模塊中定義的全局變量,則在整個工程中可見,即定義一次之后在其它任何事件中可直接
訪問。
在標(biāo)準(zhǔn)模塊中創(chuàng)建通用過程:通用過程在整個程序中可見。象全局變量一樣。
可創(chuàng)建三種類型的通用過程:函數(shù)過程,子過程(也叫sub過程),屬性過程
函數(shù)的語法格式:publicfunction函數(shù)名(形參表)as返回值類型(這個"as返回值類型"
不能丟!?。┖瘮?shù)體
函數(shù)名=返回值
Endfunction
在事件過程中調(diào)用函數(shù)的方式為:變量=函數(shù)名(實參)-它代表一個確定值,本質(zhì)是一個
變量,可以出現(xiàn)在變量可出現(xiàn)的任何地方。
附出錯經(jīng)驗一則:我想在一個事件中用個變量a,使第一次單擊該事件時a=l,第二次單擊該事
件時a=2;第三次單擊該事件時a值為3,即自增1的運算,我在事件中寫:dima
a=l
a=a+l
可每次單擊都得到同一個值2,原來,這是因為a是該事件中的局部變量,
每單擊一次就重新執(zhí)行一次,后來,我想在form」oad()事件中寫:dimaa=l,
然后在該事件中只寫a=a+l,結(jié)果卻變成a每次都是1,怎么回事?form_load事件不是每次
程序運行時自動運行的嗎,沒錯,但form」oad本身也只是一個事件,在其中定的變量
dima也屬局部變量,只在form_load一個事件中可見,因此在另一個事件中用到的a根本
沒定義,如何定義一個變量在同一個窗體模塊中各事件均可見呢?那就是在“(通用)"部分
進行變量的聲明,這樣在該窗體模塊中都可見,但通用部分不能直接進行賦值等運算(可按
格式編寫函數(shù),子程序等等,同標(biāo)準(zhǔn)模塊),參考辦法:(通用):dimaform」oad():(在其他
事件也可,只要在引用a值的那個事件前能賦a=l即可)a=l引用a的事件:a=a+l
,”對象.屬性名”的本質(zhì)是一個變量,是在該窗體模塊(通用)中缺省聲明的變量
在標(biāo)準(zhǔn)模塊中創(chuàng)建子過程:格式:publicsub子過程名稱(形參)-此處要括號
過程體
endsub
函數(shù)與sub過程的不同是:函數(shù)用其名字返回一個值,子過程處理一段程序過程,無返回值。
在標(biāo)準(zhǔn)模塊子過程中設(shè)置某個對象屬性時,必須指明哪個窗體,如:publicsublxn()
form1.image1.visible=trueendsub其中那個"forml."不能丟。
在事件中調(diào)用子過程的格式:子過程名稱實參-這里的實參不要用括號,如果調(diào)用時作
為表達式才要括號,多個實參用逗號分開。
不論是函數(shù)或是sub過程,其形參與實參之間必須保證類型與數(shù)量的一致。
★在文本框的一個輸入字符串尾加上"&chr(13)+chr(10)”,它能自動換行?;蛘哂肰B的常
數(shù)vbCrLf也可換行。相當(dāng)于C中的"\n".如:a$="李新寧"&chr(13)+chr(10)textl.text=a$
★什么是集合?集合是一組相關(guān)的對象。
窗體上的全部對象被稱作controls(控件)集合,如果一個程序有多個窗體,就要在前面加
上窗體名稱,如:forml.controls,每個窗體都有一個controls集合。這種"集合"被視作也是該
窗體的一個對象,它與窗體的關(guān)系地位有點象windows的文件夾。可以通過集合引用其中
的對象,格式一,直接使用(集合名!元素):
窗體名稱.controls!對象名稱.屬性=屬性值
form1.controls!label1.caplion="李新寧"
注:其中的感嘆號是controls集合與對象的連接符號
格式二,采用該對象在controls中的索引值(集合名(索引)):
窗體名稱.controls(索引值).屬性名=屬性值
form1.controls⑴.caption="李新寧"
注:一個對象在其所在窗體controls集合中的下標(biāo)是如何排列的呢?-按對象創(chuàng)建時的順序
逆向確定其下標(biāo)值,最后一個創(chuàng)建的對象下標(biāo)為0,倒數(shù)第二創(chuàng)建的那個對象下標(biāo)為1,如
果該窗體共有n個對象,那么一開始創(chuàng)建的那個對象的下標(biāo)為n-1.
集合的運用:FOREACH-IN-NEXT循環(huán),對一組對象(對象組)的操作。
格式:FOREACH對象變量IN集合名
對當(dāng)前對象的操作過程
NEXT對象變量
以上用于對一組對象的操作,例如將窗體上所有對象的位置向左移1000堤:
PrivateSubCommandl_Click()
ForEachIxnInControlsIxn是"當(dāng)前對象"的"替身"
Ixn.Left=Ixn.Left+1000將當(dāng)前對象的left屬性加1000
NextIxn下一個controls里的成員
EndSub
如果是有目的地選擇一部分對象的移動,怎么辦呢?可以利用對象的標(biāo)記tag屬性,區(qū)別不
同對象,下例tag屬性值為Ixm的對象就不移動,
PrivateSubCommandl_Click()
ForEachIxnInControls—controls中的每個對象
Iflxn.Tago"Ixm"Then
Ixn.Left=Ixn.Left+1000
EndIf
NextIxn
EndSub
PrivateSubForm_Load()
Command1.Tag="Ixm"-tag是個有趣的屬性,它可以由程序員指定一個
EndSub該對象的“標(biāo)記”,好區(qū)別其他相關(guān)對象。
集合不僅有controls一種,還有其他如窗體集合,數(shù)據(jù)庫集合等,值得重視。
★數(shù)組:固定了元素數(shù)量的數(shù)組叫定長數(shù)組,元素數(shù)量可在程序運行中改變的數(shù)組叫動態(tài)
數(shù)組。
定長數(shù)組的聲明:全程(公用)數(shù)組(在標(biāo)準(zhǔn)模塊中):
public數(shù)組名(第1維長度,第2維長度,……)as數(shù)據(jù)類型
局部數(shù)組(在某事件中):
static數(shù)組名(第1維長度,第2維長度,……)as數(shù)據(jù)類型
例:publiclxn(19)asstring下標(biāo)從0到19共20個元素。
創(chuàng)建動態(tài)數(shù)組:步驟:1。不指明下標(biāo)定義數(shù)組。如publiclxn()asinteger,同時在標(biāo)準(zhǔn)模塊中
定義一個變量。如:publicaasinteger
2.在程序某處設(shè)置一個變量(或其他可確定值)值,如:a=inputbox("輸入“,”個數(shù)");
3。用redim語句確定數(shù)組大小。如:redimlxn(a)
也可以不用第3步,直接在數(shù)組使用時用a限定其FOR……NEXT……循環(huán)上限。
forx=ltoa
lxn(x)=
nextx
在一個事件的中途要退出這個事件,用ExitSub關(guān)鍵字。
★VB程序中的出錯處理:錯誤處理程序使程序在出錯時繼續(xù)運行,處理出錯的步驟是:
1,在程序中可能出錯的語句前加上一條語句:
onerrorgoto標(biāo)號:
如:onerrorgoloIxn:
此處標(biāo)號是當(dāng)onerror后一條語句出錯時,程序?qū)⑥D(zhuǎn)到標(biāo)號指定的”錯誤處理程序段“。通常
放在本事件過程的底部。如果只是出錯時起語旬轉(zhuǎn)向的作用,則"錯誤處理程序段"可空。但
標(biāo)號及冒號不能少,如:
commondialog1.cancelerror=true列出出錯的情形
onen-orgotoIxn:出錯時轉(zhuǎn)向Ixn:
commondialog1.showsave如果用戶單擊了"取消"按紐,就會"出錯"。
Ixn:為空,只是跳過事件體,直按endsub了。
endsub
如果只是出錯時將程序轉(zhuǎn)到下一句,只要在出錯語句前加上OnErrorResumeNext.
真正的錯誤處理程序要用到一個屬性變量:Err.Number,它就是在遇到程序崩潰時對話框中
的那個數(shù)字,表示是第幾號的錯誤。另外,在事件底部,錯誤處理程序開始的標(biāo)號前,一般
要加上ExitSub語句,以便使程序在無錯的情況下不會去執(zhí)行錯誤處理段。在錯誤處理程
序結(jié)束時,要用"resume"將程序執(zhí)行順序返回程序中。resume后可跟標(biāo)號,舉一個例子如下:
privatesubcommandl_click()
onerrorgotoIxn:出錯時轉(zhuǎn)向Ixn:
exitsub防止程序正常時也執(zhí)行后面的出錯程序,因此無錯時結(jié)束事件。
Ixn:出錯程序段標(biāo)號(名稱)
iferr.number=71then如果出現(xiàn)71號錯誤
msgbox("軟驅(qū)門沒關(guān)好"),,“軟驅(qū)出錯”提示
resume返回程序出錯處,如果想只提示一次,那么用resumenext執(zhí)行下一句else
msgbox("無法找到此文件),"找不到"其他錯誤
resumestop:轉(zhuǎn)向標(biāo)號為stop:語句
endif
stop:為空
endsub
還有一個屬性變量err.description,它顯示出錯時的文字提示內(nèi)容。可直按用msgbox輸出到用
戶,注意:單獨的resume語句返回出錯的原程序語句,如果錯誤一直存在,那么就一直顯
示,因此,有必要改為resumenext或在程序中采用如下技巧(出錯提示三次后就越過錯誤):
PrivateSubForm_Load()
Dima%在事件開頭聲明一個變量a
OnErrorGoToIxn:
Image1.Picture=LoadPicture("c:\")
ExitSub
Ixn:
Ifa<3Then如果少于三次就繼續(xù)提示
MsgBox(Err.Description),,"error"用msgbox函數(shù)輸出對話框
a=a+l用于記錄次數(shù)
Resume返回出錯處
Else
resumenext返回出錯下一條語句
EndIf
EndSub
訪問系統(tǒng)DLL庫:系統(tǒng)WINDOWS提供了三個DLL庫,它們的庫名為:USER32;
GDI32;
KERNEL32
要訪問DLL,先要給程序添加一個標(biāo)準(zhǔn)模塊,在標(biāo)準(zhǔn)模塊中聲明DLL過程。
PublicDeclaresub過程名lib"庫名"alias”別名"(參數(shù)表)或
PublicDeclarefunction函數(shù)名lib"庫名"alias"別名"(參數(shù)表)as返回值類型
例:PublicDeclareFunctionGetWindowsDirectoryALib"kemel32"(ByVaiIxnAsString,ByVai
IxmAsLong)AsLong真酷!連參數(shù)名也自定了。
說明:
其中,過程名或函數(shù)名可以自定,如果是自定的(不同于DLL庫中的名字),那么就必須在
Alias”別名"中寫出它在DLL庫中的全名;如果過程名或函數(shù)名就是DLL庫中的過程名,
則Alias"別名"可以省略。如上例若將API函數(shù)GetWindowsDirectoryA換成Idd,寫成:Public
DeclarefunctionIddlib"kemel32"alias"GetWindowsDirectoryA"_
(byvalIxnasstring,byvalIxmaslong)aslong
聲明了API函數(shù),它的調(diào)用與調(diào)用一般的VB函數(shù)沒區(qū)別。
參數(shù)表:聲明部分的"形參"有兩個值得注意的關(guān)健字:ByVaiflByRef
byval意為"值傳遞”,是將實參的值拷貝過來,API過程用的是“實參”的復(fù)制品,不會使原參
數(shù)產(chǎn)生變化。
byref意為“地址傳遞”,是將實參在內(nèi)存中的地址(指針)傳遞過來,如果在過程中改變了
該地址的內(nèi)容,那么會使原參數(shù)的內(nèi)容產(chǎn)生變化。
重大注意;字符串都是傳地址的。如果在形參聲明中用Byval,則傳遞字符串的首字符指針
(也就是地址),如果用BYREF,則傳遞指向字符串首字符指針的指針。
重大注意:在形參聲明中不注明byval和byref的情況下,缺省為byref,即指針傳遞。
在API訪問和參數(shù)類型聲明中,有一個很好的幫助工具,那就是API瀏覽器(在外接程序
管理器中),在其中查找所需API,并查找相應(yīng)類型聲明,然后用剪貼板復(fù)制到標(biāo)準(zhǔn)模塊的
聲明中,再自定義一個這種類型的變量,如:
PublicTypeMEMORYSTATUS數(shù)據(jù)類型聲明,從API游覽器中復(fù)制
dwLengthAsLong
dwMemoryLoadAsLong
dwTotalPhysAsLong
dwAvailPhysAsLong
dwTotalPageFileAsLong
dwAvailPageFileAsLong
dwTotalVirtualAsLong
dwAvailVirlualAsLong
EndType
PublicDeclareSubGlobalMemoryStatusLib"kerne132"_API聲明
(IpBufferAsMEMORYSTATUS)
PublicIxnAsMEMORYSTATUS定義一個這樣的變量,好在事件中調(diào)用時當(dāng)實參用。
調(diào)用API函數(shù)時,格式如下:
CALL函數(shù)名或過程名(實參)
CallGlobalMemoryStatus(lxn)
如果實參是一個“結(jié)構(gòu)類型”,引用時就用”實參.分量”來表示每一項返回值,如:
MsgBox(Ixn.dwAvailPageFile),,"a"
MsgBox(lxn.dwAvailPhys),,nbn
MsgBox(Ixn.dwAvailVirtual),,ucn
MsgBox(Ixn.dwLength),,"dn
MsgBox(Ixn.dwTotalPageFile),,ne"
MsgBox(Ixn.dwMemoryLoad),,"f*
MsgBox(Ixn.dwTotalPhys),,ngM這些a,b,c,d,e是標(biāo)題條中隨便起的。
用VB在硬盤上創(chuàng)建一個文件夾:
Mkdir語句。格式:
Mkdir”路徑及文件夾名"
mkdir"c:\windows\desktop\李新寧"在桌面上創(chuàng)建個名為"李新寧"的文件夾
又如:PrivateSubCommand2_Click()
MkDir"c:\windows\desktop\mydir"
EndSub
如果缺省路徑,則為本VB程序的當(dāng)前路徑,如:mkdir"mydir”,在當(dāng)前目錄下創(chuàng)建一個文件
夾,名為mydir.
用VB刪除一個文件夾(空文件夾):RmDir語句,格式:
rmdir"路徑及文件夾名"
用法與上面類似,此不再說明.如果一個文件夾內(nèi)有文件,那么,要先用KILL語句刪除文件,
再用rmdir刪除文件夾。格式:
kin”路徑及文件名"
在路徑及文件名中,省略路徑則指當(dāng)前路徑,并可用通配符"*“和"?”來刪除多個文件,如:
killtxt",將當(dāng)前目錄下的所有文本文件全部刪除。注意:KILL語句刪除的文件不會放
入回收站。
在調(diào)用函數(shù)或過程時,該函數(shù)或過程如果作為表達式,則其實參要括號,如果調(diào)用時是作為
語句,實參則不要括號。下面兩句是等價的。
SetWindowTextAForml.hwnd,"API函數(shù)修改標(biāo)題欄文字”一函數(shù)語句
CallSetWindowTextA(Forml.hwnd,"API函數(shù)修改標(biāo)題欄文字”)-函數(shù)為表達式
API調(diào)用格式中的lib"庫名"有一點要注意,如果不是調(diào)用Windows\system文件夾下的DLL
庫,則要指明路徑名,如:
publicdeclarefunctionIxnsdlllib"d:\student\mydll.dll"(byvalaasinteger,byvalbasinteger)as
long
在程序中窗體的運行位置是用一個叫做“窗體布局”的窗口來調(diào)整的,可否用另外的替代法,
而不用這個不精確的"窗體布局"窗口呢?
當(dāng)然可以,那就是在代碼中,例如要使窗體居于顯示器中央,有兩個新屬性變量,screen.width
和screen.height,分別表示本顯示器的屏幕寬度(screen.widlh)和顯示器高度(screen.height).
用屏幕寬度減去窗體F0RM1寬度再除以2,就可得到FORM的left左邊距了(也就是橫坐
標(biāo)吧),用屏幕高度減FORM1高度再除以2。就可得到FORM的top上邊距了(縱坐標(biāo)),
這樣便可居中,如下:
Form1.Left=(Screen.Width-Form1.Width)/2
Form1.Top=(Screen.Height-Form1.Height)/2
VB基本概念:對象-對象是具有某些特性的具體事物的抽象。
我在使用VB時遇到一個問題,我想用一個組框(frame1)將幾個按紐括在一起,可是當(dāng)組
框畫上去后卻會把按紐都覆蓋掉。按紐不見了(在framel圖層下面),怎么辦?什么辦法可
以決定幾個對象重合時,哪個在上,哪個在下?辦法如下:1,選中要改變圖層前后的對象;
2,在“格式”菜單中“順序”菜單項中選“置前”(在上面)或“置后"(在下面)即可。另外,在
代碼中也可以,用zorder方法,格式:
對象名.zorderO或1(0為置前,1為置后)
frame1.zorder1
重點筆記:事件
在WINDOWS中最主要的事件就是鼠標(biāo)事件,特別是其中的click單擊事件,此外還有
dblclick事件:雙擊事件,用法與click一樣。
mousedown事件:鼠標(biāo)按下時發(fā)生,有一個值得注意的參數(shù)button,它返回按下鼠標(biāo)左鍵還
是鼠標(biāo)右鍵,采用ifbutton=vbleftbutton…代碼來寫。
mouseup事件:鼠標(biāo)先按下然后抬起時發(fā)生,用法與mousedown一樣。
mousemove事件:鼠標(biāo)經(jīng)過時發(fā)生。
第二類的事件就是鍵盤事件,這類事件的掌握要加強。一個控件得到焦點后,就可以觸發(fā)這
一類事件,有以下幾種:
keydown事件:按下鍵盤上某個健時發(fā)生。但鍵盤上鍵那么多,需要用它返回的keycode參
數(shù)來指明按了哪個鍵,例下:
PrivateSubForm_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=vbKeyBThen
Print"你按下了字母B"
ElselfKeyCode=vbKeyFlThen
Print”你按下了Fl鍵”
EndIf
EndSub
注:在keycode參數(shù)中,主鍵盤上的數(shù)字鍵和數(shù)字小鍵盤上的數(shù)字鍵是不同的,主鍵盤上用
vbkey0-vbkey9表示,而小鍵盤上的鍵用vbkeyNumpadO-vbkeyNumpad9來表示。
keyup事件:松開按鍵時發(fā)生,與keydown事件用法一樣。
keypress事件:按下某個鍵接著松開這個鍵時發(fā)生。注意,它的參數(shù)與keydown及keyup不
同,它是采用字符ASCII碼的方式,即用一個叫Keyascii的參數(shù)名,可以區(qū)分大小寫,但
有些功能鍵不能用。
ifkeyascii=O到255的一個整數(shù)Ihen...來寫,例如:
PrivateSubForm_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=120Then'120是小寫字母x的ASCII碼值
UnloadMe
ElseIfKeyAscii<48OrKeyAscii>57Then'數(shù)字鍵的ASCII碼在這個范圍內(nèi)
MsgBox("你輸入的不是數(shù)字)48
EndIf
EndSub
其他重要的事件有:
change事件:當(dāng)對象的內(nèi)容改變時發(fā)生。
gotlbcus事件:當(dāng)焦點從一個對象移動到當(dāng)前對象時,當(dāng)前對象發(fā)生gotfocus事件。
lostfocus事件:當(dāng)焦點從當(dāng)前對象移出時,當(dāng)前對象會發(fā)生lostfocus事件。
★keydown事件和keypress事件有什么實際運用上的差別?keydown多常用于功能鍵(如
F1),需要shift,Ctrl,Alt+字符鍵的"組合鍵",區(qū)分?jǐn)?shù)字小鍵盤和常規(guī)數(shù)字鍵等keypress所不
能的情況,keypress以ASCII碼來區(qū)分按鍵,側(cè)重"鍵的內(nèi)容",而keydown和keyup側(cè)重"
鍵的位置"。
我想在文本框中限制只能輸入數(shù)字,怎么辦最方便?可用keypress事件,如下:
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
IfKeyAscii<48OrKeyAscii>57Then
KeyAscii=0等于0表示沒按鍵,它在textl對象text屬性接入字符前產(chǎn)生,因
Beep此可限制輸入。
EndIf
EndSub
集合(collection):用來存儲類似數(shù)組的一組同類變量,它與數(shù)組不同的是,集合是一種對象,
它不僅可通過索引值來訪問其中的元素,還可通過關(guān)健字來訪問其中元素。聲明格式:
DIM(或PUBLIC)集合名asnewcollection
dimIxnasnewcollection
既然集合是一個對象,就用方法和屬性去操作它,有三個方法和一個屬性:
ADD方法:添加元素到集合對象中;格式:
集合名.add元素內(nèi)容,關(guān)健字,添加到…前,添加到…后(添加位置)
Ixn.add23,“李新寧",,"李冬冬"
上例表示在集合中“李冬冬“關(guān)健字所對應(yīng)元素后面添加"李新寧"為關(guān)健字的元素23(我是想
表示年紀(jì))。
REMOVE方法:刪除一個元素;
集合名.remove"關(guān)健字或索引位置"
Ixn.remove"李新寧"或Ixn.remove5(如果元素"23"的索引號為5)
索引值是VB自動給每個集合元素添加的,從第1個元素索引號為1開始。
ITEM方法:引用集合對象中的元素,可省略,格式:集合名.item(關(guān)健字)
省略為:集合名(關(guān)健字或索引位置)
x=lxn("李新寧”)x就等于23。
也可用索引位置,如x=lxn⑸(如果“李新寧"所對元素的索引為5),索引位置(其實就是
下標(biāo))最小從1開始。
COUNT屬性:返回集合中的元素個數(shù)。格式:集合名.count.如y=lxn.count,y就等于集合中
元素個數(shù)。
自定義過程:Private(或public,static)sub過程名(形參)
endsub
調(diào)用:Call過程名(實參)或過程名實參
自定義函數(shù):private(或public,static)function函數(shù)名(形參)as類型
函數(shù)名=值
endfunction
調(diào)用:函數(shù)名(實參)為一個確定值,
上面函數(shù)與過程區(qū)別是:函數(shù)一定有返回值,所以定義時要指明(返回值)類型,并在函數(shù)
過程中設(shè)定”函數(shù)名=值"來確定返回值。調(diào)用函數(shù)時如果也用CALL,則函數(shù)的返回值就失
去意義(這樣合是合法)。
★基本的類操作:類形象理解為“控件”即可,創(chuàng)建一個類,也
就是自己創(chuàng)建一個象工具箱中控件那樣的"新"控件。自己設(shè)置添加它的屬性,方法。只不過
自己發(fā)明的新控件沒有圖標(biāo),所有屬性,方法,事件只能在代碼中進行而已。
類是用來創(chuàng)建對象實例的模板。
1,在“工程"菜單中選"添加類模塊"。在屬性窗口修改它的"(名稱)”屬性為想要的名字,這
個名字將作為這個類(為好理解,叫成"新控件")的名字。
2,制作新控件屬性:在類模塊中通用部分(此時全都是)用Public聲明一群變量,要指明
具體類型,這些所有變量就成了新控件的屬性。就這么簡單。
3,制作新控件方法:在類模塊中建立新過程(用publicsub...endsub或publicfunction...end
function),這些過程名將作為新控件的方法名。在過程里編寫新控件功能的代碼。
4,編寫類模塊事件,類模塊事件只有initialize和terminate兩種。當(dāng)我們在程序中用”新控
件"創(chuàng)建一個對象時,在剛剛創(chuàng)建一剎那,觸發(fā)這里的initialize事件,這個事件可處理對象
實例創(chuàng)建時需要處理的初始化。
新控件的運用:如何使用自己新做的"控件"呢?因為它沒有在工具箱中的圖標(biāo),不可直按”
畫”到窗體上,而要完全在代碼中進行。
1,在通用部分聲明一個對象變量,使它指向“新控件"。如DimIxnAsclassl
classl是我自定的“新控件”名。注意:此時只是聲明變量Ixn為對象變量,但并沒有具體代
表哪個對象,要用SET語句來確定對象變量的值。用set…new…新建類模塊對象。
2,在FORMLOAD事件中創(chuàng)建一個"新控件"的對象,用SET…NEW語句,
set對象變量=優(yōu)\¥新控件
setlxn=newclass1
這時,對象變量名就成了創(chuàng)建的對象的名字(注:沒有NEW是普通的賦值,有NEW就是
新建對象)。
3,進行對象可進行的各種操作。如:lxn.condition=lrue
下面是自制一個“跑表”控件的例子。
A,類模塊中:
OptionExplicit
Publictimed]AsDate'這三個變量作為“跑表”類的屬性
PublicconditionAsBoolean'timectl為時間長度,condition為計時/停止?fàn)顟B(tài)
PublicstarttimeAsDate'starttime為基準(zhǔn)時間
PublicSubstart。'開始計時方法
condition=True
starttime=Timestarttime賦值為系統(tǒng)時鐘的當(dāng)前時間
EndSub
PublicSubstoptime。'停止計時.方法
DimIxnAsDate
condition=False
Ixn=Time-starttime時間差
timectl=timectl+Ixn進行多次調(diào)用該過程時累積時間長度
EndSub
PublicSubreset。'清0方法
condition=False
timectl=0
starttime=Time
EndSub
PrivateSubClass_Initialize()供新建實例時初始化
starttime=Time
timectl=Time-starttime
condition=False
EndSub
B,程序中:
DimmywatchAsmyclass聲明對象變量將指向myclass創(chuàng)建的實例
PrivateSubCommand1_Click()
Setmywatch=Newmyclass重新新建
Text1.Text=mywatch.timectl
EndSub
PrivateSubCommand2_Click()
SelectCasemywatch.condition
CaseFalse
mywatch.start
Text1.Text=uon”
CaseTrue
mywatch.stoptime
Text!.Text=mywatch.timectl
EndSelect
EndSub
PrivateSubForm_Load()
Setmywatch=Newmyclass新建對象
Text!.Text=mywatch.timectl
EndSub
★程序中的APP對象,它主要提供如本程序的標(biāo)題,版本信息,路徑等有時很必要的信息,
常用屬性有:
App.Title:返回本程序的標(biāo)題。
App.Path:返回本程序所在的路徑。與curdir不完全相同,curdir是指當(dāng)前路徑。如果1個程
序創(chuàng)建了快捷方式,則App.path和curdir就可能不同了。應(yīng)以App.path為準(zhǔn)。
App.EXEname:返回本程序不含擴展名的根名
如何在VB中控制關(guān)機?除了以前講到的exitwindowsex函數(shù)外,還有一種更簡單的方法,
只要在你需要的地方,比如按扭等等,在事件過程中加入
Shell"rundll32.exeuser.exe,exitwindows"就可以了。對WIN2000無效!
在VB中可打開控制面板,由用戶進行設(shè)置,打開主面板:在事件過程中寫
x=Shell("rundll32.exeshell32.dll,Control_RunDLL",1)
也可打開各個具體項目,如
x=Shell("rundll32.exeshell32.dll,Control_RunDLLmmsys.cpl",1)
打開的是控制面板中"多媒體"項。而
x=Shell("rundll32.exeshell32.dll,Control_RunDLLaccess.cpl?5",1)
打開的是“輔助選項"項目。而
x=Shell("rundll32.exeshell32.dll,Control_RunDLLdesk.cpl,,2",1)顯示的是"顯示器”項目(中
的“外觀“選項卡,注:各個選項卡由尾部參數(shù)決定,這里是2)。
在文本輸入時,我們可通過設(shè)置ASCII碼的chr(13)+chr(10)來使文本換行,而在VB程序中,
可用一個常數(shù)vbCrLf來代替這兩個ASCII碼表示換行,如:
textl.text="您如果需要的話"&chr(13)+chr(10)&"可以來找我"
可寫為:textl.text="您如果需要的話"&vbCrLf&"可以來找我"
關(guān)于在VB程序中用鍵盤的問題:1,很多控件運行時的使用都可以采用在其caption屬性中
寫"&快捷鍵”的方式指定鍵盤訪問鍵(如菜單,按紐,復(fù)選框,選項按紐等等)2,TAB
鍵常用來對各對象間的切換。
3,設(shè)計時改變選定對象的大?。篠hift+方向鍵;
設(shè)計時改變選定對象的位置:Ctrl+方向鍵。
在標(biāo)準(zhǔn)模塊中不能編寫某個窗體中
的對象的事件過程,事件過程只能在窗體模塊中編寫。
VB代碼窗口中的書簽:書簽可用來標(biāo)記代碼中的某些行,以便以后可以很容易地返回這些
行,書簽的切換或定位可在"編輯"菜單”書簽”項中進行。
VB代碼一行一般寫一條語句,也可一行寫多條語句,每條語句間用冒號:隔開即可
VB一條長語句可以分成幾行來寫,在需要分行的地方用"空格+下劃線(_)”即可。
在VB中我們一般用十進制數(shù),但有時用十六進制數(shù)或八進制數(shù)更方便,怎樣表示16進制
數(shù)呢:用前綴&H,怎樣表示八進制數(shù)呢,用前綴&0(&號和大寫字母0或數(shù)字0),如:
255=&o377=&hFF
我們可看到用16進制數(shù)表示的控件顏色值如:labell.backcolor=&HFF0000(藍色),通常情況
下,顏色值由六位數(shù)組成,顏色值=&Hbbggrr。前兩位數(shù)表示藍色成分,中間兩位表示綠色
成分,后面兩位表示紅色成分,范圍從16進制數(shù)的0-FF。
在多個模塊中有同名的公用變量(用public聲明的)時,引用時應(yīng)分別指出它的出處,形如:
modulel.lxn或module2.1xn或forml.lxn等。如果有同名的公用過程或公用函數(shù)等也是如此,
引用時指明出處。
變體類型數(shù)據(jù)的三個特殊值:EMPTY,NULL,ERRORo
當(dāng)一個變體變量未賦值時,其"值"就等于Empty.它不等于0或空字符串當(dāng)給一個變量賦
值后(如lxn=0),其empty值就消失,可重新賦予empty值,如:lxn=empty
可用IsEmpty函數(shù)檢測是否為empty值:ifIsEmpty(lxn)=truethenlxn=0
給一個變體變量賦予NULL值:常用于數(shù)據(jù)庫程序中表示未知數(shù)據(jù)或丟失的數(shù)據(jù),null的傳
播性:假如有一個變量值為NULL,將它放入一個表達式中,整個表達式值將變?yōu)镹ULL,
將它作為參數(shù)傳入函數(shù)中,函數(shù)將返回NULL,NULL能通過表達式"傳播",當(dāng)然前提是有
"變體"變量(為傳播載體)的基礎(chǔ)上。用IsNull函數(shù)檢測是否為NULL值,
如:ifIsNull(lxn)=falsethenlxn=Null
變體變量的ERROR值,指出己發(fā)生的過程中的錯誤狀態(tài)。不是指程序錯誤(我沒看懂)
在動態(tài)數(shù)組的使用中,用redim確定了數(shù)組的最大下標(biāo),如果還要改動這個值,而程序中若
重復(fù)執(zhí)行ReDim語句時,當(dāng)前存儲在數(shù)組中的值都會全部丟失,VB重新將所有數(shù)組元素
初始化,運行中怎樣改變數(shù)組的大小而又不丟失數(shù)據(jù)呢?用ReDimPreserve關(guān)健字,但要
注意,運行中只能改變數(shù)組最后一維的大小,可先用UBound函數(shù)取得數(shù)組
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年網(wǎng)絡(luò)安全服務(wù)合同簽訂原則與數(shù)據(jù)安全防護措施3篇
- 2024年范本:廣告投放違約責(zé)任約定書
- 2024年度鐵路運輸合同中對貨物損失、滅失責(zé)任的界定與賠償3篇
- 2024年度地基轉(zhuǎn)讓合同范本(含土地使用規(guī)劃)3篇
- 氣球粘紙實驗課程設(shè)計
- 2024年度玩具導(dǎo)購員勞動合同模板(含親子服務(wù))3篇
- 滴膠飾品課程設(shè)計
- 2024年汽車配件銷售擔(dān)保合同規(guī)范文本3篇
- 2024年標(biāo)準(zhǔn)化房地產(chǎn)標(biāo)識設(shè)計與安裝合同版B版
- 2024年版二手車交易法律合同3篇
- 個人消費貸款保證合同模板
- 黑龍江省哈爾濱市2023-2024學(xué)年七年級上學(xué)期期末統(tǒng)考學(xué)業(yè)水平調(diào)研測試語文試卷(解析版)
- 社工個人工作述職報告
- 《自動化儀表安裝、調(diào)試施工監(jiān)理實施細(xì)則》
- 《人力資源管理》大學(xué)期末測試題庫500題(含答案)
- 街舞簡介課件教學(xué)課件
- 小紅書食用農(nóng)產(chǎn)品承諾書示例
- GB/T 15934-2024電器附件電線組件和互連電線組件
- 2023上半年四川公務(wù)員考試申論試題(省市卷)
- 施工臨時占人行道施工方案
- 文學(xué)與倫理學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
評論
0/150
提交評論