




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
OOPPascal基礎知識2.1OOPPascal基本要素
Delphi是Borland公司推出的面向對象的可視化編程環境,特別適合於快速規範地開發Windows應用程式。從Borland公司推出Delphi1.0至今,Delphi已經發展了7代產品,每一代都是伴隨Windows操作平臺的升級而升級。使用Delphi,用戶可以輕鬆地進行各種複雜應用程式的開發。
2.1.1識別字識別字是用來標識一個特定元素的,如類名、變數名、單元名、方法名等。利用識別字可以完成對變數、常量、數據類型、過程、函數、類等的引用。ObjectPascal識別字由字母、數字、下劃線組成,其規定為:(1)必須以字母或下劃線開始;(2)不能與保留字相同;(3)避免與ObjectPascal已經使用的標準識別字相同。2.1.2關鍵字
關鍵字又稱保留字(ReservedWords)是由系統規定的、具有特定意義的單詞。在編程時不能被重新定義或另作他用。ObjectPascal語言規定的保留字詳見本教程P28頁表2-1。
除了上述的保留字外,Private、Protected、Public、Published和Automated在定義對象類型時也作為保留字,而在其他場合則作為指令符。單詞at和on也具有特殊的含義。
注意:ObjectPascal編程語言和許多編程語言不同,它對單詞的大小寫是不敏感的。ObjectPascal不區分大小寫。IN、in和In都被看做是同樣的意義。2.1.3指示字
注意:
可以定義一個跟指示字完全相同的識別字,但最好不這樣做。
指示字(directives)也是具有特殊意義的單詞,但與保留字不同的是可以將指令符定義為識別字,ObjectPascal不會指示出錯,但這容易混淆。ObjectPascal規定的指令指示字見表2-2。2.2數據類型
OOPPASCAL語言是一種強類型語言,這表明每一個變數在賦值之前必須明確給出它的類型。即變數在訪問之前必須聲明。OOPPASCAL數據類型豐富,它允許使用17種類型的數據。其結構如P31圖2-1所示。2.2.1簡單類型
OOPPASCAL中的簡單類型包括整形、字元型、布爾型、枚舉型、子界類型以及實數類型。
其中,整形、字元型、布爾型、枚舉型、子界類型統稱為順序類型(ordinaltypes)。在順序類型中,除了第一個元素,每一個元素都有唯一的前趨;除了最後一個元素外,每一個元素都有唯一的後繼。
1.整型
OOPPASCAL中將整數類型分為基本的(fundanmental)和一般的(generic)整數類型。基本的整數類型包括Shortint(短整型)、Smallint(小整型)、Longint(長整型)、Int64(64位整型)、Byte(位元組型)、Word(字型)和Longword(長字型)。它們的取值範圍和格式如表2-4所示:表2-4基本整數類型類型範圍格式Shortint-127...1278位帶符號數Smallint-32768…3276716位帶符號數Longint-2147483648…214748364732位帶符號數Int64-2^63…2^63-164位帶符號數Byte0…2558位無符號數word0…6553516位無符號數Longword0…429496729532位無符號數2.字元型
字元類型也有基本類型和一般類型之分。基本類型包括AnsiChar和WideChar兩種類型。其中,AnsiChar的格式為8位位元組,取值的序數按擴展ANSI字元集排列;而WideChar的格式為16位位元組,是為相容UniCode字元集而設置的,它的前256個UniCode字元同ANSI字元相同。一般的通用字元類型為Char,它等價於AnsiChar。由於字元型也屬於順序類型,可用函數Ord來取出字元的序數,即Ord(‘A’)=65成立。也可用預定義的函數Chr來返回對應的字元值,即Chr(65)=’A’
成立。
3.布爾型
布爾型數據用於進行邏輯運算,布爾型數據的值只有兩個:True(真)和False(假)。ObjectPascal包括4種形式的布爾型數據,詳見表2-7。表2-7ObjectPascal語言的布爾型類型名稱位元組數取值布爾型Boolean1只能為False(0)或True(1)位元組布爾型ByteBool1False或True(非False)寬布爾型WordBool2False或True(非False)長布爾型LongBool4False或True(非False)4.枚舉型
枚舉類型定義了一組值的順序集合。它們的次序根據識別字的枚舉順序而定。在Delphi中廣泛使用了枚舉類型來定義組件對象的屬性。枚舉類型是一種用戶子定義類型,定義枚舉類型的語法如下:Type類型名稱(TypeName)=(值1,值2,值3,……,值n);如下是定義枚舉類型的例子:
TypeFruits=(Apples,Oranges,Bananas,Grapes);
在程式中定義好了枚舉類型後,可以象如下聲明變數:
VarMyFruit:Fruits;
5.子界類型子界類型也是一種用戶字定義類型,它規定了值域的上界和下界及取值的類型。位元組類型必須是順序類型中某範圍的值,在想限制一個變數的取值範圍時,子界類型是非常有用的。子界類型的定義如下:Type類型名稱
=值域下界
…
值域上界;
定義子界類型必須注意以下幾點:
上界和下界必須屬於順序類型,且為同一順序類型。
上界和下界的類型定義了子界的基類型。
上界的序號必須大於下界的序號。正確的定義舉例如下:
TypeSomeNumbers=0…15;
SomeCaps=‘A’
…
‘H’;
6.實型實數類型用於定義一個通常所說的浮點數所表示的數字的集合。它是屬於數據類型中的簡單類型,但已不屬於順序類型。實數類型也有基本類型和一般類型。基本類型包括:Real48、Single、Double、Extended、Comp和Currency;一般類型為:Real。詳細的格式及表示範圍如表2-6所示:
類型名表示範圍有效位佔用記憶體(位元組)Real48±2.9*10^-39~1.7*10^3811~126Single±1.5*10^-45~3.4*10^3874Double±5.0*10^-324~1.7*10^30815~168Extended±3.6*10^-4951~1.1*10^493219~2010Comp-2^63+1~2^63-119~208Currency-922337203685477.5808~922337203685477.580719~208Real±5.0*10^-324~1.7*10^30815~1682.2.2字串類型字串型是存儲字串數據的類型。OOPPASCAL中提供的預定義類型如表2-7:
表2-7字串類型類型名最大長度(字元)所需記憶體用途ShortString2552~256B向後相容AnsiString2314~2GB8位ANSI字元WideString2304~2GBUniCode注:在
Delphi5.0以後的程式中可直接定義String類型,其默認為AnsiString類型(或者說是LongString類型),如果使用{$H-},則被解釋為ShortString類型。
2.2.3結構類型
結構類型包括:集合(Set)、數組(Array)、記錄(Record)、檔(File)以及類(Class)、類引用(ClassReference)、介面(Interface)等類型。它的實例中含有一個或多個值。
2.2.4指針類型指針是記憶體中數據結構的詳細地址,相當於一個表示記憶體地址的變數。指針類型聲明的一般形式為:
Type指針類型名
=^類型特殊符號
“^”
表明了是一個指針類型,其後面緊跟的類型確定了指針所指向的類型,可以是簡單類型,如整型、實型、枚舉等;也可以是結構類型,如數組、集合、記錄等類型。“^”還有另外一種含義,跟在指針類型的變數後面,表示具體的值。配合指針操作的還有符號“@”,它是取址運算符,表示取地址操作。
2.2.5過程類型
過程類型變數相當於指針的角色,它可指向一個過程或函數,並且可以作為另一個過程或函數的參數使用。其定義的方式如下例:TypeTProcedure=Procedure;//聲明一個無參數過程類型TIntegerFunction=Function:Integer;//聲明一個無參數函數類型,返回值為整型TStringProcedure=Procedure(constS:String);//聲明一個帶有
String類型參數的過程類型VarProc:Tprocedure;IntF:TintegerFunction;StrP:TstringProcedure;2.2.6可變類型
用於標識可變類型的保留字是Variant,Variant類對象本質上是無類型變數,也就是它們可以自動顯現不同的類型。可變類型就是為了解決在編譯時數據類型無法確定的情況下,ObjectPascal才引入的數據類型。可變類型變數舉例如下:VarX:Variant;S:String;BeginX:=10;S:=IntToStr(X+20);X:=‘ObjectPascal’;MessageDlg(X,mtConfirmation,mbYesNoCancel,0);End;2.3運算和運算符
運算是對數據進行加工處理的過程,描述各種不同運算的符號稱為運算符,而參與運算的數據稱為運算元。運算式是表示某個求值規則的運算公式,它由運算符和圓括號將常量、變數等運算元以合理的形式組合而成。運算式可以用來執行運算、操作或測試數據,每個運算式都會產生惟一的值。運算式的類型由運算符的類型決定。在ObjectPascal中有以下幾種運算符:算術運算符、位運算符、字串運算符、關係運算符、布爾運算符、集合運算符、指針運算符、類運算符和@運算符。本節介紹幾種常用的運算和運算符。2.3.1算術運算
算術運算的操作對象為整形或實型,算術運算符包括
+,-,*,/,div和
mod,詳細說明如下表2-8:
表2-8OOPPASCAL語言的算術運算符操作符操作運算元類型結果類型+加整形,實型整形,實型-減整形,實型整形,實型*乘整形,實型整形,實型/除整形,實型整形,實型Div整數除整形整形Mod取模整形整形
2.3.2布爾運算
布爾運算的操作對象的類型為布爾型,返回的結果值也是布爾類型。布爾運算符基本有四個,分別是
Not,And,Or,Xor,其詳細說明如表2-9:
表2-9OOPPASCAL語言的布爾運算符
操作符操作操作規則Not取反NotTrue=False;NotFalse=TrueAnd與(布爾乘)TrueAndTrue=True;AAndFalse=FalseOr或(布爾加)FalseOrFalse=False;AOrTrue=TrueXor異或AXorA=False;AXor(NotA)=True2.3.3邏輯運算
邏輯運算實現的是按位的運算,它的操作及其操作的結果均為整數,邏輯運算的操作說明如下表2-10所示:
表2-10OOPPASCAL語言的邏輯運算符
操作符操作操作舉例Not按位取反Not001101=110010And按位與001101And100001=000001Or按位或001101Or100001=101101Xor按位異或001101Xor100001=101100Shl左移13(001101)Shl2=52Shr右移13(001101)Shr2=32.3.4指針運算指針運算符及其說明如下表2-11:
表2-11OOPPASCA語言的指針運算符
操作符操作運算元類型結果類型+加法字元指針、整數字元指針-減法字元指針、整數字元指針、整數∧取值指針指針基類型=相等指針布爾<>不等指針布爾2.3.5集合運算
集合運算是以集合類型作為運算元的,它的運算符及其說明如下表2-12:
表2-12OOPPASCAL語言的集合運算符
操作符操作結果類型+並集集合-差集集合*交集集合<=子集布爾>=父集布爾=相等布爾<>不等布爾In屬於布爾2.3.6關係運算
關係運算用於比較兩個運算元,其返回值的類型是布爾型。關係運算符的操作說明如下表2-13:
表2-13OOPPASCAL語言的關係運算符
操作符操作運算元類型=相等簡單類型、類、類引用、介面、字串、緊縮字串<>不等簡單類型、類、類引用、介面、字串、緊縮字串<小於簡單類型、字串、緊縮字串、PChar>大於簡單類型、字串、緊縮字串、PChar<=不大於簡單類型、字串、緊縮字串、PChar>=不小於簡單類型、字串、緊縮字串、PChar2.3.7字串運算
操作符
+可以用作算術運算符、指針運算符和集合運算符,還可以用作表示把兩個字串類型的運算元相連接,即連接兩個字串。例如:
‘My’+‘String’=‘MyString’;
2.3.8取址運算
取址運算符@
,它返回變數、函數、過程或方法的地址。關於取址運算符@,其原則說明如下:如果
X是變數,則
@X
返回
X的地址;在默認的編譯指示{$T-}下,@X的類型為
Pointer;而在{$T+}狀態,
@X的類型為
^T,其中的
T為
X的類型。如果F是一個過程或函數,@F返回F的入口點,它的類型一定是Pointer。
2.3.9運算符的優先順序在運算式中有多種運算符時,要注意各個操作符之間的優先順序。通常情況下,先作括弧裏的運算,再從優先級由高到低的次序來做,同等優先順序的,按從左到右出現的順序處理。所以,在不清楚具體優先順序的情形下,可以使用括弧,來確保程式的正確性。
表2-14OOPPASCAL中運算符的優先順序
優先順序操作符最高@,Not次高*,/,Div,Mod,And,Shl,Shr,As次低+,-
,Or,Xor最低=,<>,<,>,<=,>=,In,Is2.4常量與變數
定義常量的目的基本上有兩種:其一,在程式中經常用到某些常數值,為了書寫方便及減少頻繁輸入造成錯誤,可把它定義為一個常量;其二,就是為了便於程式的閱讀或修改,定義常量可使程式易於維護。
1.常量的聲明常量可以在程式、單元、過程或函數的聲明部分進行聲明,常量在說明時就被賦予了一個值,在程式執行過程中是不可改變的。
聲明常量的一般形式如下:Const
常量名1=常量值1;
常量名2=常量值2;
……
在程式設計中常用到兩種形式的數據,一種是在程式執行過程中其值保持不變的數據,稱為常量;另一種是在程式執行過程中其值可以改變的數據,稱為變數。2.4.1常量2.類型常量類型常量主要是不能修改的只讀變數。在聲明常量時,直接聲明其常量類型。類型常量的聲明方法如下:
Const
常量名1:類型名=常量值1;
常量名2:類型名=常量值2;
……舉例如下:ConstWeekDays:Integer=7;DayInYear:Integer=365;2.4.1常量(2)2.4.2變數變數實際就是程式員在內存中指定的一個帶有識別字的地址空間,變數名則是這個指定記憶體地址的識別字,而變數的類型則確定了這個記憶體地址中存的值什麼樣是合法的或可能的,並且該記憶體地址裏的值是可以改變的。1.變數的聲明變數在使用之前,也必須先進行聲明。聲明變數的保留字為Var,其聲明的一般形式如下:
Var
變數名1:類型名1;變數名2:類型名2;
……聲明變數舉例如下:
VarGz_Sum:Real;Value_1,Value_2:Integer;StrTitle:String;X:Variant;2.4.2變數2.變數的作用域變數的作用域是指它的可見性和生命期。可見性是指可以訪問該變數的區域,生命期是指一個變數可以保持它的值和可見性的時間。在
Delphi7中,變數可以在程式、單元、函數或過程的聲明部分進行聲明,聲明的位置則決定了變數的作用域。
聲明在過程或函數內部的變數有時叫做局部變數,而在應用程式開始聲明的變數叫做全局變數。全局變數可以在聲明時對它進行初始化,格式為:
var<變數名>:<類型名>=<常量運算式>
其中常量運算式的值必須與變數定義的類型相相容。2.4.2變數3.變數的強制類型轉換由於
Delphi的編譯器對各種類型的參數檢查是非常嚴格的,類型不匹配則通不過編譯器的編譯檢查,為通過編譯器的編譯檢查,經常需要把一個變數的類型轉換為另一個變數類型。強制類型轉換就是一種技術,通過它能使編譯器把一種類型的變數當作另一種類型變數,由此來通過編譯器的編譯檢查。注:強制類型轉換要求兩種類型在內存中存儲空間的大小必須相同,整數類型變數與實數類型之間不能進行這樣的轉換,應該通過預定義的標準函數,如:Trunc()或Round()函數。
2.5OOPPASCAL中的語句
ObjectPascal中的語句可分為簡單語句和結構語句兩種。簡單語句有賦值語句、空語句、跳轉語句(Goto語句)和過程語句;結構語句有複合語句、條件語句、迴圈語句和
開域語句(With語句)。
語句的書寫規則⑴可以把多個語句放在一個程式行中,也可把一個語句分多行書寫⑵每個語句都必須以分號“;”結束。
⑶對於較為複雜的程式常用到複合語句,複合語句是指將多個語句用begin和end兩個保留字包圍起來,格式如下:begin<語句1>;…;<語句n>;end;複合語句在ObjectPascal中被視為一個語句,因此在end後必須2.5.1簡單語句1.賦值語句賦值語句用來顯式地給變數賦值,即用運算式的值取代變數的當前值。賦值語句的一般形式如下:變數名
:=運算式
;如:MyNumber_1:=100;
2.空語句在
ObjectPascal中允許使用空語句,所謂空語句就是語句中沒有任何運算式的值和賦值符號,只有一個分號。
可參見P57例題。2.5.1簡單語句(2)
3.Goto語句和語句標號
Goto語句可以將程式的執行流程轉移到程式指定的某個位置,即轉移到其他語句處再繼續執行。Goto語句必須借助語句標號才可能使程式知道轉移的位置,ObjectPascal可以使用標號(Labels)來標識語句以提供Goto語句將跳轉的確切位置。Goto語句的一般形式如下:
Goto語句標號;注:Goto語句所轉向的語句標號必須和該語句同處於相同的程式段內,不能轉入或轉出一個過程或函數,也不能轉入該程式段內其他的迴圈結構。
2.5.2複合語句
複合語句由若干個簡單語句或結構語句構成,在這些語句前後加入保留字Begin和End即可。其一般形式如下:
Begin
語句1;語句2;
……
語句n;
End;例如:把兩個變數的值進行交換的複合語句如下:
BeginX:=Number_1;
Number_1:=Number_2;
Number_2:=X;
End;
2.5.3條件語句(1)
ObjectPascal語言提供的條件語句有兩種,即
If語句和
Case語句。
1.If語句
If語句需要計算一個運算式,並根據計算結果決定程式流程。If保留字後的運算式的值必須是一個布爾類型(Boolean)。其語句的一般形式如下:If<logicalexpression>Then<statement>;或語法中帶有Else子句,如:If<logicalexpression>Then<statement>Else<statement>;其中,<logicalexpression>是一個邏輯型的運算式,其值為Boolean類型。當值為真(True)時,程式執行保留字Then後的<statement>;當值為假(False)時,程式則執行保留字Else後的<statement>。兩種形式中的<statement>即可以是單語句也可以是複合語句。最後的“;”號代表著If語句的結束,所以在保留字Else之前不應加有“;”號。
2.5.3條件語句(2)2.Case語句
Case語句的一般語法形式為:
Case選擇器運算式Of
情況常量表1:語句1;情況常量表2:語句2;
……
情況常量表n:語句n;
Else
語句
End;其中:選擇器運算式的值必須為順序類型(如整型、字元型、布爾型和子界型等)。情況常量列表中的值應是選擇器運算式可能具有的值。由每一個情況常量列表列出的值在Case語句中必須是唯一的,相互間值的範圍也不允許有重疊部分。Else提供了如果所列出的情況都不出現,應執行的語句,也就是說程式只能選擇一個執行結果。根據需要也可以省略掉Else部分和它後面的語句。2.5.3條件語句(3)條件語句舉例:以例題2.2為例,用Case語句來代替If語句的實現。程式代碼如下:
CaseMarkOf90..100:ShowMessage('優');80..89:ShowMessage('良');70..79:ShowMessage('中');60..69:ShowMessage('及格');0..59:ShowMessage('不及格');ElseShowMessage('輸入超出範圍');End;2.5.4迴圈語句(1)
在編程過程中遇到的好多問題是重複單調的。比如從1加到100,問題雖然簡單卻要重複操作。我們可以把這些重複的動作交給電腦去完成。引例:求1+2+3+……+100的值。
OOPPascal語言提供了三種迴圈語句,每一種可分別適合某一特定情況。這三種迴圈分別是:Repeat、While和For迴圈語句。
迴圈結構只關心下麵的三個要素:進入迴圈結構的條件是什麼?在什麼情況下結束迴圈過程?循環體內部要完成的操作及在循環體內如何改變迴圈條件?
2.5.4迴圈語句(2)
1.Repeat迴圈語句
Repeat迴圈語句是以Repeat開始,以Until結束。它可以重複執行Repeat和Until之間的語句,直至Until後的運算式為真,則退出迴圈執行其後的語句。Repeat迴圈語句的一般形式為:
Repeat
語句1;語句2;
……
語句n;
Until<邏輯運算式>;循環體2.5.4迴圈語句(3)
2.While迴圈語句While迴圈語句在多數場合下都可以代替Repeat迴圈語句,但與Repeat迴圈語句不同的是,它的布爾類型的運算式在While之後,即在迴圈剛開始處,所以While迴圈是先進行判斷,再執行迴圈語句。While迴圈語句的一般形式為:
While<邏輯運算式>Do<循環體語句>
其中,運算式必須是一個具有Boolean類型值的運算式。如果運算式的值為真(True)則執行
Do後的循環體語句;如果運算式的值為假(False),則不執行
While循環體而直接跳到
While循環體後再執行其他語句。Do後的循環體語句,可以是簡單語句、複合語句或其他結構語句。
2.5.4迴圈語句(4)
3.
For迴圈語句
For迴圈語句可以執行一定的次數,它需要一個迴圈變數來控制迴圈的次數。For迴圈語句有兩種形式:增量迴圈和減量迴圈。
增量迴圈
For語句的一般形式為:
For迴圈變數名:=初值
To終值
Do語句
減量迴圈
For語句的一般形式為:
For迴圈變數名:=初值
DownTo終值
Do語句其中,迴圈變數必須是一個順序類型的局部變數,也不允許帶有限定符。初值和終值的類型應和迴圈變數的類型相容。循環體中的語句可以是簡單語句、複合語句或結構語句。
2.5.4迴圈語句(5)
3.
For迴圈語句
For迴圈語句可以執行一定的次數,它需要一個迴圈變數來控制迴圈的次數。For迴圈語句有兩種形式:增量迴圈和減量迴圈。
增量迴圈
For語句的一般形式為:
For迴圈變數名:=初值
To終值
Do語句
減量迴圈
For語句的一般形式為:
For迴圈變數名:=初值
DownTo終值
Do語句其中,迴圈變數必須是一個順序類型的局部變數,也不允許帶有限定符。初值和終值的類型應和迴圈變數的類型相容。循環體中的語句可以是簡單語句、複合語句或結構語句。
2.5.4迴圈語句(6)
三種迴圈的比較以上三種迴圈都可用來實現迴圈,它們的使用特點歸結為:如果知道迴圈執行多少次的話,可以使用For迴圈語句結構。For迴圈執行速度快,效率高。如果不知道迴圈要執行多少次,但至少會執行一次的話,選用Repeat…Until迴圈語句結構比較合適;當認為程式可能一次都不執行的話,最好選用While…Do迴圈語句結構。Break()過程和Continue()過程在While、Repeat或For三種的循環體中,可調用Break()過程,使得程式的執行流程發生改變,即在循環體中當某個條件成立時跳出循環體。如果想跳過循環體中部分代碼重新開始下一次迴圈,調用Continue()過程。
2.6過程和函數一般來說每個程式都由若干個主要的任務構成,每個主要任務又可分成若干個子任務,這樣逐層細化,一直細化到每個子任務都只完成一個簡單的基本功能為止。
為此,可以把某些功能完全相同或非常相近的子任務單獨提取出來,劃分成程式的基本單元,其他程式可以重複調用。這樣做提高了編程效率,是程式更加規範化,也減少了代碼的出錯率。
函數和過程就是OOPPascal語言中的兩種子程式,它們可以隨時被調用。函數在執行時將返回一個值,而過程執行時不返回任何值。
2.6.1過程的聲明過程聲明的一般語法形式為:
procedure過程名(形式參數表);指令符;局部聲明:begin執行語句
……end;在Delphi7的單元中聲明過程或函數時,只需要在單元內聲明過程或函數頭部(可在單元的介面部分,也可在單元的實現部分),然後把游標定位在頭部內,點擊滑鼠右鍵彈出快捷菜單,在該菜單中單擊【CompleteClassatCursor】菜單項即可。Delphi7會幫助完成自定義過程、函數或類的輸入。2.6.2函數的聲明函數聲明的一般語法形式為:
Function函數名(形式參數表):返回類型;指令符;局部聲明部分begin執行語句……end;需要特別注意的是:函數必須有返回值,所以在函數聲明時要給出返回值的類型;而過程沒有返回值,聲明時也就沒有返回類型。
2.6.3過程和函數的調用1.過程調用調用過程的一般形式如下:過程名(實參數表);如果聲明的過程沒有形參,調用時便可以省略後面的實參表,其形式如下:過程名;2.函數的調用調用函數的一般形式如下:函數名(實參數表);在調用過程和函數時要注意:在過程與函數聲明的作用域內才可調用該過程或函數;調用過程或函數時還要注意有參數時,參數的類型一定要保持相同。2.6.4參數傳遞方式在上面的調用過程或函數時,程式將把實參傳遞給形參,按傳遞方式的不同,OOPPascal中過程和函數的參數可分為:值參數、常量參數、變數參數和外部參數。1.值參數如果形式參數表中的參數前面沒有Const、Var或Out聲明的參數,該參數則為值參數類型。
在OOPPascal中值參數是按“值傳遞”方式將實參的值傳送給形參的。值傳遞指的是在調用子過程語句被執行時,帶實參值的調用語句將實參複製給子過程中的形參。所以要求實參的個數、數據類型與形參個數、數據類型完全匹配。2.6.4參數傳遞方式2.常量參數如果形式參數表中的參數前面有
Const聲明的參數,該形式參數則為常量參數。常量參數在過程或函數中是絕對不允許改變的參數值,也不能再作為實參傳送給該過程或函數體中另一個過程或函數的變數形參。如果在一個過程或函數中其形參在執行過程中不應該改變其數值的話,那麼就應該使用一個常量參數。這樣可以保護形參而杜絕發生意外的情況。Delphi7系統
在
Sysutils中聲明的字串比較函數,如
CompareStr()函數中的形參就是常量參數,它的首部如下:
FunctionCompareStr(ConstS1,S2:String):Integer;2.6.4參數傳遞方式3.變數參數如果形式參數表中的參數前面有
Var聲明的參數,該形式參數則為變數參數類型。變數參數的參數傳遞方式為“地址傳遞”方式。地址傳遞指的是調用過程語句被執行時,過程中的形參直接引用了調用語句中的實參。所以形參與實參實質上是用同一個存儲單元。如果在子過程中修改了形參值,就會直接體現在實參上,在某些情況下,會造成負面影響。2.6.4參數傳遞方式4.外部參數如果形式參數表中的參數前面有
Out聲明的參數,該形式參數則為外部參數類型。外部參數與變數參數一樣在實參與形參之間的值傳遞是按地址傳遞方式進行的。但是使用時與變數參數有很大的區別。當調用含有外部參數的過程或函數時,所引用的實參(變數)的初始值將被拋棄,該變數僅被用來作為一個容器來存儲過程或函數執行的中間結果。在編寫應用象COM、CORBA這樣的分佈式對象模型的程式中,會經常使用外部參數。
第3章可視化組件的應用
內容提要
窗體與組件常用組件的使用3.1窗體與組件在Windows環境中,人機交互主要是在一些窗體和對話框中進行的。在Delphi中,窗體指的就是窗口和對話框,進行可視化程式設計一般就是從窗體開始並在窗體中完成的。窗體本身就是一個組件,它與其他組件不同的是:窗體像一個可以放置東西的容器,可以根據任務的需要在其上放置各種各樣的組件。窗體與組件的關係參見圖3-1。3.1.1窗體與組件的關係圖3-1窗體與組件3.1.2組件的公共屬性和事件
不同的組件具有不同的屬性、方法和事件,但有些屬性和事件是公共的,也就是它們雖然出現在不同的組件中但含義和使用方法相同。
1.常用的公共屬性(1)Action屬性。用來設置與菜單項相關的動作對象,可以通過動作列表編輯器來設置。(2)Align屬性。用於決定組件在窗體或上一級組件中的位置和尺寸。(3)Autosize屬性。用於決定組件是否隨其所包含內容的大小而調整尺寸。(4)Caption屬性。用來設置組件的標題。(5)Color屬性。用來設置組件的顏色。
(6)Cursor
屬性。用於設定當滑鼠的游標落入該組件的區域時滑鼠游標的形狀。(7)Font
屬性。用於設置組件上所顯示的文字的字體。(8)Height
屬性和Width屬性。用於設置組件的高度和寬度。(9)Hint
屬性和ShowHint屬性。Hint屬性用於設置滑鼠在組件上停留是顯示提示資訊的內容;ShowHint屬性用於指定滑鼠在該組件上停留時是否顯示提示資訊。(10)Left
屬性和Top屬性。指定該組件在窗體中的左上頂點的座標值。(11)Name
屬性。這是每個組件都具有的屬性,該屬性用於指明組件對象的名字,通過組件對象的名字來使用組件。(12)ParentColor
屬性。
ParentFont屬性和ParentShowHint屬性。當這些屬性值設置為Ture時,組件使用它的上一級組件的同一屬性的設置植,這樣可以使程式保持一致的風格。(13)PopUpMenu
屬性。用於指定當右擊該組件時彈出時的彈出式菜單PopUpMenu的名字,此時這個彈出式菜單應該已經存在,PopUpMenu本身也是一個組件。(14)Text屬性。 用於指定文本類組件顯示的文本,類似於Caption屬性。(15)Visible屬性。決定組件是否可見。當設置為True時,在運行時可以看到該組件;設為False時運行時不可見。2.常用的公共事件
⑴
onClick事件。滑鼠左鍵單擊某組件時觸發該事件。⑵
onDblClick事件。滑鼠左鍵雙擊某組件時觸發該事件。⑶
OnEnter事件和OnExit事件。
當通過滑鼠單擊組件或Tab鍵跳轉到組件上時,該組件獲得焦點,此時該組件的OnEnter事件被觸發;該組件由焦點狀態轉為非焦點狀態時將觸發OnExit事件。⑷
OnMouseDown事件、OnMouseMove事件和OnMouseUp事件這是回應滑鼠的一組事件。其中當滑鼠在組件上被按下時觸發OnMouseDown事件;當滑鼠在組件的顯示區域內移動時觸發OnMouseMove事件;當釋放了在組件區域內按下的滑鼠鍵時觸發OnMouseUp事件。這三個事件不僅可以判斷滑鼠按下的是左、中、右鍵中的哪一個鍵,還可以判斷是否同時按下了Alt、Shift或Ctrl鍵。具體應用請看下麵章節的組件介紹。⑸OnKeyDown事件、OnKeyUp事件和OnKePress事件這是回應鍵盤的一組事件。組件處於啟動的焦點狀態時,按下了鍵盤上的鍵時將觸發OnKeyDown事件,返回的是按下鍵的鍵值,可以是複合鍵;釋放一個按下的鍵時將觸發OnKeyUp事件;鍵盤上的鍵一次完整地按下和釋放操作將觸發OnKeyPress事件。
3.2常用組件的使用Delphi封裝了大量的可視化組件,使程式員能夠在拖拖放放中輕鬆地設計程式介面。Delphi中提供的【Standard】、【Additional】和【Win32】三個標籤頁放置基本組件。這些組件都是任何程式設計必不可少的。本節將詳細介紹常用組件的使用方法。3.2.1Label組件
Label(標籤)組件在Standard標籤頁中,主要用於在窗體中顯示提示資訊,常與Edit組件一起使用,是顯示文本的主要組件。其特殊屬性有:1.Autosize屬性 該屬性用來判斷Label(標籤)組件是否隨Caption屬性值自動調整大小。如果該屬性值為True,則Label的長度隨著Caption屬性值自動調整大小;如果該屬性值為False,則Label保持設計時定義的大小不變,此時,若標題太長,則只能顯示部分內容。2.Caption屬性 該屬性用來設置在標籤上顯示的文本。3.Wordwrap該屬性 該屬性用於設置Caption屬性的顯示方式。缺省為False,表示標籤上的標題(提示資訊)不能自動換行;如果該屬性為True,則標籤將在垂直方向變化大小,以使其與顯示的文本相適應,而水準方向的大小不變。但若想使該屬性起作用,還必須將Autosize屬性設為True。4.Layout該屬性 該屬性可以改變文本在標籤中的位置。5.Transparent該屬性 該屬性決定標籤的背景是否透明。其值為True時,透明,即標籤不會擋住它下麵的組件。默認值為False。3.2.2Edit組件
Edit組件在Standard標籤頁中,也稱編輯框組件是Windows程式中常用的組件,它主要用於輸入單行文字。Edit組件的常用屬性有:1.AutoSelect屬性
該屬性確定當編輯框獲得輸入焦點時,編輯框中的文字是否自動被選中。2.AutoSize屬性該屬性確定編輯框是否隨字體變化而自動變動尺寸,缺省為True。3.BorderStyle屬性該屬性確定Edit控件是否有邊框。4.CharCase屬性該屬性設置文本框內字元的大小寫,其值為:ecLowerCase,全部轉換為小寫;ecNormal,不轉換;ecUpperCase,全部轉換為大寫。5.HideSelection屬性該屬性決定當輸入焦點從Tmemo組件移走後,編輯框內原來被選中的文本是否依然保持選中狀態。其設置為True,不保持;其值為False,保持。該屬性的默認值為True。6.MaxLength屬性該屬性確定編輯框最多可以輸入的字元數,缺省值為0,表示可以輸入任意多的字元;如果該屬性不為0,只能向編輯框中輸入小於或等於設定值的字元數。7.Modified屬性該屬性確定編輯框中的內容自建立以來或者Modified屬性最後一次被設置為False之後是否被修改。8.PasswordChar屬性該屬性在一些編輯框組件如TMaskEdit、TDBEdit中都有。缺省時該屬性為#0,即沒有掩碼。用戶可以自己設置一個掩碼,如‘*’,則用戶在編輯框中輸入的字元都將以‘*’字元顯示,而隱藏真實的字元。9.Text屬性該屬性用於顯示和保存編輯框中的內容。10.ReadOnly屬性該屬性確定程式運行時,用戶是否可以改變編輯框中的內容。若為True,表示編輯框是只讀的,其內容不可以編輯修改。11.SelLength屬性該屬性可以返回在編輯框中被選中的文本的長度。12.SelStart該屬性該屬性確定在編輯框中被選中文本的起始位置(第一個字元的序號為0)。13.SelText屬性該屬性用來設置或指示選中的文本。
Edit組件的主要方法方法說明Clear使用該方法可以清除文本框中的文本內容。CanFocus該方法用來測試Memo控件是否可以接受焦點。如果其值為False,則控件不能接受焦點;反之可以接受焦點。ClearSelection該方法將刪除Memo框中被選中的文本。如果在Memo控件中沒有被選擇的內容,那麼該方法不刪除任何東西。CopyToClipboard使用該方法可以將文本框中選中的內容複製到剪切板中。CutToClipboard使用該方法可以將文本框中選中的內容剪切到剪切板中。PasteFromClipboard使用該方法可以將剪切板中的內容粘貼到文本框中。SelectAll使用該方法將選中文本框中的所有內容。
Edit組件常用的幾個事件有:OnChange、OnKeyPress、OnEnter事件。Edit組件的常用事件
事件說明OnChange當編輯框中的內容發生變化時,觸發該事件,它是Edit中最常用,也是最有用的事件之一。OnKeyPress當按下一個按鍵時,觸發該事件。OnEnter編輯框獲得輸入焦點時,觸發該事件。3.2.3Memo組件Memo組件在Standard標籤頁中,Memo組件為用戶提供了一種處理多行文本的方法,還可用它快速地閱讀檔中的數據,而且讀取和保存文本的最大長度可達255KB。
Memo組件的屬性
Memo組件的屬性、方法和事件與Edit組件大致相同。其特有的幾個屬性有:1.Lines屬性按行處理文本。2.ScrollBars屬性該屬性用來設置備註框是否出現滾動條以及滾動條的種類。3.WordWrap屬性該屬性用來決定當輸入的文本到達右邊界時是否插入軟回車,以便換到下一行再輸入。3.2.3Memo組件Memo組件的方法⑴
使用剪貼板(Clipboard)
Memo組件同Edit組件一樣,也可使用CutToClipboard、CopyToClipboard和PastFromClipboar這三種方法,實現將Memo組件中被選擇文本剪切或複製到剪貼板上,以及將剪切板上的內容粘貼到Memo組件中。 將Memo中的選中文本剪切到剪貼板的語句如下:
ifMemo1.SelLength>0then Memo1.CutToClipboard;2.文本的添加(Add方法)
利用Lines屬性,可以增加、刪除一行文本,也可以移動一行文本。下麵的代碼將文本添加到Memo中的最後一行:
Memo1.Lines.Add(‘在Memo1的最後添加一行文本’);3.檔的保存和裝載(LoadFile方法、SaveToFile方法)
Memo1.Lines.LoadFile(Opendialog1.FileName)
可以將Memo組件中的文本保存成文本文件,也可以將文本檔裝載到Memo中。這需要配合使用SaveDialog組件和OpenDialog組件。將Memo中的文本保存為文本檔的語句為:
ifSaveDialog1.Executethen//打開保存
Memo1.Lines.SaveToFile(SaveDialog1.FileName);
以上語句先打開保存對話框,然後將Memo中的文本保存對話框到一個檔中,檔案名為我們在SaveDialog中輸入的文本。在Memo中裝載文本檔的語句為:
ifOpendialog1.ExecutethenMemol.Lines.LoadFile(Opendialogl.FileName);
3.2.4MaskEdit組件
MaskEdit組件在Additional標籤頁中,MaskEdit組件(也稱掩碼編輯框)是一種特殊的編輯框,它的主要屬性是EditMask。使用它可以設計出許多複雜的輸入格式。在選用MaskEdit之後,需要為它設計一個輸入格式。其格式輸入符參見P99頁表3-6。MaskEdit組件輸入格式符格式符意義l和Ll表示該位置只可能是一個字母,可以用游標鍵跳過它,但是不能是其他類型的字元。L表示該位置必須是一個字元。a和Aa表示該位置只可能是一個字母或數字字元。A表示該位置必須有一個字母或數字字元。c和Cc表示該位置只可能是一個字母,C表示該位置必須有一個字母。9和09表示該位置只可能是一個數字,0表示該位置必須有一個數字。〈和〉<格式符表示隨後的字母均以小寫的形式顯示,直到遇到一個>格式字元或<>格式符。>格式符則和<正好相反。〈〉表示不作大小寫轉換,以輸入時的形式為准。\表示該格式符之後的那個掩碼格式符將作為數據中的普通字元對待。如果想在數據中放進一個掩碼格式符時,應該在這個格式符前放一個\符號。如\A等等。#表示該位置可能是一個數字或正符號。!如有!表示數據前的空格將不被保存在數據中,沒有!則數據後的空格不被保存。!格式符只能放在掩碼格式符的第一個字元處。;和/標準的分隔符號,可作為數據的一部分。其中/在顯示時為‘-’而非/。3.2.5RichEdit組件RichEdit組件在Win32標籤頁中,RichEdit組件和Memo組件非常相似,但RichEdit組件功能更強大,能夠對文字進行格式化,如設置字體、顏色等,可以插入OLE文檔,支持滑鼠拖放,還可以對文本進行搜索和列印。一般用RichEdit組件製作文本編輯器。具體應用與例3-4類同請參閱例3-4的介面及代碼部分。3.2.6ListBox組件ListBox(列表框)組件在Standard標籤頁中,ListBox通常用來對一組資訊進行列表。列表框和組合框(ComboBox)的功能類似,只不過組合框一次只能顯示一條資訊,要流覽全部資訊,需要按下組合框旁邊的三角按鈕。在列表框中的專案列表是Items屬性的值,可使用Add、Insert、Delete方法對列表框中的專案進行增加、插入和刪除操作。ListBox組件的主要屬性有:
1.Canvas
該屬性只有在列表框風格為自繪時才有用,用於在列表框專案上繪製圖形。
2.Colums
該屬性用來控制列表框中的專案需顯示成幾列。默認是0,表示以單列顯示。
3.Height
該屬性決定列表框在垂直方向的高度。
3.2.6ListBox組件
4.ItemIndex屬性該屬性指出在列表框中被選中的哪個專案的索引號。5.Items屬性該屬性用來存放列表框中的列表項。6.MultiSelect屬性該屬性用來設置能否在列表框中選擇多個列表項,即是否允許多選。7.Selected屬性該屬性用來測試某個列表項是否被選中。8.Stored屬性該屬性決定是否自動地為用戶進行排序。
3.2.6ListBox組件
ListBox組件的常用方法Clear方法:該方法清除在列表框中的所有專案。Add方法:可在運行時使用該方法為列表框添加新專案。Delete方法:可在運行時使用該方法刪除列表框中的專案。Insert方法:可在運行時使用該方法為列表框插入新專案。ScreenToClient方法:該方法返回列表框在螢幕上的當前位置。
ClearSelection方法:該方法的作用是清除列表框中所有被選中的選項。CopySelection方法:該方法用來把列表框中的所有選中的列表項複製到另一個列表框中。ListBox組件的事件OnDrawItem事件:當列表框中的內容重新顯示時,該事件發生。比如,當用戶選擇了列表框中的專案,系統需對選擇的專案反白顯示,此時就觸發OnDrawItem事件。但是該事件僅當Style屬性值為IbOwnerDrawFixed或者LbOwnerVariable時才會發生。OnEnter事件:當ListBox組件成為當前列表框時,該事件發生。OnMeasureItem事件:不管何時應用程式需重新顯示在列表中的專案時,該事件發生。在事件發生後,它將測出需重畫區域的大小參數傳給OnDrawItem事件,該事件重新顯示給定的區域。3.2.7ComboBox組件ComboBox組件在Standard標籤頁中,稱為組合框。它是設計Windows應用程式時使用較多的組件。它彙集了列表框和編輯框的功能,使用戶可從下拉列表中選擇數據或者直接向組合框中輸入數據。
ComboBox組件的屬性
1.Style屬性該屬性用來設置或返回組合框的風格。
2.Text屬性該屬性用於設置或返回組合框中當前顯示出來的文本值。
3.ItemIndex屬性該屬性指定組合框中被選擇的專案。
4.SelStart屬性該屬性確定組合框中所選文本的開始位置。
5.DropDownCount屬性該屬性控制組合框被下拉時彈出的專案條數。超出該屬性規定的專案數時,自動出現垂直滾動條。
ComboBox組件的常用方法
ComboBox組件的常用方法與ListBox組件的相同,其列表項也是由Items屬性來控制。在程式中可以使用Add、Delete、Insert方法進行專案的添加、刪除和插入操作等管理。3.2.8GroupBox組件GroupBox組件又稱為分組框組件,它在組件面板的Standard標籤頁中。在該組件裏可以放置如RadioButton、CheckBox等組件。放進去的組件將會自動成為一組。通過它的Caption屬性可以修改該組件的標題。3.2.9RadilGroup組件
在對象查看器中單擊Items屬性旁邊的省略號,然後在彈出的【StringListEditor】對話框中添加項,每添加一行就會在RadioGroup組件中產生一個標題為添加項文本內容的RadioButton組件,添加完單擊OK按鈕。RadioGroup組件的屬性
1.Items屬性
Items屬性用於生成個單選按鈕。
2.ItemIndex屬性
ItemIndex屬性用於表明單選按鈕組中哪一項被選中了。若為-1(缺省值),表示沒有被選中的項;若為0,表示第一項被選中;若為1,表示第二項被選中;其他依次類推。3.2.10Button組件與BitBtn組件Button組件(按鈕)是Windows應用程式介面中最常用、最簡單的組件之一。除此之外,Delphi還提供了一種位圖按鈕(BitBtn)。這種按鈕的不同之處在於按鈕上可以顯示位圖。Button組件的主要屬性
1.Caption屬性:標題屬性。
2.Cancel屬性決定該按鈕是否為取消按鈕,默認值為False。
3.Default屬性決定該按鈕是否為默認按鈕,缺省值為False。Button組件的常用事件
OnClick事件:單擊事件,是TButton組件的最常用事件。
3.2.10Button組件與BitBtn組件BitBtn組件的主要屬性
1.Glyph屬性為按鈕指定一個位圖文件,顯示在按鈕的表面。
2.Kind屬性決定位圖按鈕的種類。位圖按鈕使用最多的屬性就是Kind。BitBtn組件的常用事件
OnClick事件:單擊事件,是TButton組件的最常用事件。3.2.11SpeedButton組件SpeedButton組件通常稱為快捷按鈕,在Additional標籤頁中。此組件與位圖按鈕非常相似,同樣可以顯示圖像,它們的主要區別是:SpeedButton按鈕一般只顯示圖像不顯示文字,另外SpeedButton可以保持在單擊時被選中的狀態,該組件在設計工具欄時使用。
SpeedButton組件的特殊屬性
1.AllowAllUp屬性該屬性為True,則表示允許一組中的所有快捷按鈕均為彈起狀態。如果設置為False,則表示某組快捷按鈕中至少有一個不能彈起。
2.Down屬性該屬性用於設置按鈕的狀態,其值為True,表示按鈕處於選中狀態。默認值為False。
3.Flat屬性該屬性判斷按鈕是否被選中。其值為True則表示按鈕在非選定狀態下沒有邊框,只有在選中的狀態下才有邊框。
4.GroupIndex屬性當需要將幾個快捷按鈕合成一組時,需要用GroupIndex屬性設置。
5.Cursor屬性該屬性用於設置滑鼠的形狀,可供選擇的形狀很多,不同的形狀可增添程式的趣味性。
3.2.12CheckBox組件
CheckBox組件通常稱為複選框,複選框往往是多個構成一組,在應用程式運行時,可以選中其中的一個或多個,也可以一個都不選。CheckBox組件的主要屬性
1.Caption屬性該屬性表示複選框所提示的內容。
2.Checked屬性該屬性表示複選框是否被選中,有兩個可選值:True表示複選框被選擇,False
表示未選中。
3.State屬性該屬性表示複選框當前的複選狀態,其值有三種:cbUnChecked(未選中)、cbChecked(選中)、cbGrayed(變灰選中)。
3.2.13RadioButton組件RadioButton組件通常稱為單選按鈕,在Standard標籤頁中,單選按鈕提供了一個選項集,只能在這些選項中排他性地選擇其中一個,所以叫單選按鈕。該組件的主要屬性就是:Checked屬性,該屬性表明單選按鈕是否被選中。如果選中,則該屬性值為True,默認值為False,表示未選中。3.2.14Image組件
圖像組件Image在Additional標籤頁上,用來在窗口中顯示一幅圖片,可以在picture屬性中調入圖像檔。Delphi支持位圖(.BMP)、圖示(.ICO)、圖元(.WFM)三種檔格式。比較重要的屬性:
Autosize屬性和Stretch屬性。它們決定了圖像在窗口中的顯示尺寸。Autosize屬性為True表示按原尺寸顯示,Stretch屬性為True表示圖像按對象圖框的大小顯示,這時圖像的大小可以人為改變。3.2.15Shape組件
圖形組件Shape可以處理多種幾何形狀,如線形、矩形、圓形等。通過設置Shape屬性設置幾何圖形的類型,通過設置Pen和Brush的嵌套屬性,可以設置圖形邊框顏色、線型及圖形的風格、填充方式等。
Shape屬性可選值為stCircle、stEllipse、stRectangle、stRoundRect及stRoundSquare。3.2.16TreeView組件
TreeView(樹狀視圖)組件,在Win32標籤頁中。可以利用該組件描述一個樹狀結構,如Windows資源管理器左窗格顯示的樹形結構目錄,就可以利用TreeView組件實現。在TreeView中,每個節點都是TtreeNode類型的對象,而它和所屬的節點又組成了一個TtreeNodes對象。在圖3-14中,Windows是一個TtreeNode對象,而Windows和其下的子目錄又構成了一個TtreeNodes對象,訪問TtreeNode和TtreeNodes對象的方法有所不同。
圖3-2TreeView示例3.2.17ListView組件ListView(列表視圖)組件,在組件面板的Win32標籤頁。Windows資源管理器的右半部分是典型的列表視圖。它有四種方式,即大圖示、小圖示、簡單列表和詳細列表。ListView組件本身比較複雜,主要有兩類對象來控制,那就是縱向的列對象TlistColumn和橫向的TlistItem對象。TlistColumn
每個列都有標題、對齊方式及寬度等屬性。在TlistView中,所有的列集中起來,由Columns管理的,它是一個TlistColumns對象,有屬性Items和Count,通過這個對象的數組屬性Items[n]來訪問每個列。使用Columns的Add方法可以增加列。TlistItem
這是描述列表專案的對象。每個專案都應有標題Caption,複選狀態Checked。屬性ImageIndex,OverLayIndex,StateIndex分別表示專案的圖示序號,用於透明覆蓋的圖示序號,用於表明狀態的圖示序號。屬性Selected,Cut,Focused分別表示專案是否被選中,是否被剪貼,是否具有輸入焦點。所有的專案集中由TlistView的屬性Items管理,它是TlistItems對象,有屬性Items和Count,通過這個對象的數組屬性Items[n]來訪問每個專案,使用方法Add增加列表專案。TlistView組件的示例操作(1)賦值withListView1.Items.AdddobeginCaption:=‘caption’;//添加第一項
SubItems.add(‘aaaaa’);//添加後面數據
SubItems.add('1234');end;//一定要使用WITH結構.(2)取值listview1.Items.Item[i].Caption;//取得某條數據標題listview1.Items.Item[i].SubItems.Strings[j];//取得某條數據內容listview1.Items.Item[i].SubItems.CommaText;//一條記錄的全部內容,格式:“標題”,“內容1”,“內容2”,listview1.Items.Item[i].SubItems.Text //一條記錄的全部內容(3)刪除listview1.Items.Item[i].Delete;刪除一條數據(4)數據類型定義i:=ListV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国家安全教育教师国家级培训心得体会(14篇)
- 资产设备合同范本
- 科技与电影衍生品市场的深度融合研究
- 货运用工合同范本
- 水电老板包工合同范本
- 社会舆论环境下的青少年价值观变化研究
- 豪华别墅租赁链家居间合同
- 游戏厅装修解约协议样本
- 科技产业中供应链金融的优化策略
- 生态旅游与医疗健康的关系探索
- 《单位内个人清缴社保费申请表》(填写样例)
- T-CAMET 04017.7-2019 城市轨道交通 全自动运行系统规范 第7部分:运营管理
- 常用桥牌词语(中英文对照)
- 小升初、小学生满分优秀作文汇编100篇
- 次声波在临床医学及麻醉中的作用 次声波在临床麻醉中的作用
- 中石油HSE培训试题集(共33页)
- 2022年云南省中考数学试题及答案解析
- TS16949五大工具:SPC
- 五年级下册-综合实践教案
- 贵州出版社小学五年级下册综合实践活动教案全册
- [方案]隐框玻璃幕墙施工方案
评论
0/150
提交评论