




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Delphi概述
內容提要
Delphi簡介
Delphi7集成開發環境
Delphi的文件結構簡單應用程序實例1.1Delphi簡介
Delphi是Borland公司推出的面相對象的可視化編程環境,特別適合于快速規范地開發Windows應用程序。從Borland公司推出Delphi1.0至今,Delphi已經發展了7代產品,每一代都是伴隨Windows操作平臺的升級而升級。使用Delphi,用戶可以輕松地進行各種復雜應用程序的開發。
1.2Delphi的新特性Delphi具有簡單、高效、功能強大的特點,而Delphi7在以下幾個方面又進行了加強:
企業應用的MDA開發可視化的快速Web開發內建的對Linux的跨平臺支持企業級的報表能力免費的DataSnap多層應用開發WindowsXP應用
1.4Delphi7的集成開發環境
Delphi7的集成開發環境(IDE)和
Delphi以前的版本基本一致。它把菜單、多個工具欄以及一組窗口和應用程序設計在一起,將代碼以事件的形式與界面的每一元素建立聯系,使用戶很方便的在這個高度集成的開發環境里進行應用程序的開發和調試。
Delphi7的集成開發環境(IDE)是進行設計、運行和測試程序的工作系統。啟動Delphi7,運行后可以見到它的開發環境如圖1-1所示。1.4.1Delphi7集成開發環境的組成
主要包括以下幾個窗口:主窗口;對象樹形圖、對象監視器窗口;窗體設計器窗口、代碼編輯器窗口。(圖1-1Delphi7開發環境)1.4.2Delphi7主窗體
Delphi7的主窗體位于屏幕的上端,主要包括四個部分:標題欄、菜單欄、工具欄和組件欄。Delphi7的主窗口如圖1-2所示。(圖1-2)
Delphi7的主窗口1.4.3對象樹形圖及對象監視器窗口
對象樹形圖窗口(ObjectTreeView)用樹形表方式列出了項目中所有的對象,即窗口、組件、菜單等,并清楚地表明了它們之間的關系。對象樹形窗口如圖1-3所示。
在對象樹形圖窗口下方是對象監視器窗口(ObjectInspector),對象監視器窗口含有兩個頁卡:屬性頁卡(Properties),顯示窗體中當前被選擇部件的屬性信息,并允許改變對象的屬性;事件頁卡(Events),列出了當前部件可以響應的事件。對象監視器窗口如圖1-4所示。
圖1-3對象樹形圖窗
圖1-4對象監視器窗1.4.5窗體設計器在
Delphi7的開發過程中,大部分的設計是在窗體設計器中,主要是通過向窗體中添加組件以及更改窗體及組件的屬性和填寫事件來完成的。當創建一個
Windows應用程序時,Delphi會缺省的建立一個窗體
Form1。窗體設計器窗口如圖1-5所示。
對象樹形圖窗口與對象觀察器窗口、窗體設計器窗口同步,即在此三個工具的任何一個中改變焦點時,另外兩個工具的焦點也會發生變化。圖1-5窗體設計器窗口1.4.6代碼編輯器代碼編輯器是一個程序代碼的輸入和編輯工具,也稱單元窗口。通常情況下隱藏在窗體設計器的下面,可通過菜單或工具欄上的按鈕對它們進行切換。Delphi7的代碼編輯器具有彩色高亮度語法顯示、自動進行語法校驗、代碼參數提示輸入和代碼完善等功能。
啟動Delphi或執行NewForm菜單項時,系統即生成一個新的窗體,并在代碼編輯器中產生一個新頁卡,在新頁卡中可以編輯相應的單元代碼。按F12可以在窗體設計器窗口和代碼編輯器窗口之間轉換。
圖1-6代碼編輯器窗口1.5Delphi的文件結構利用
Delphi開發
Windows應用程序都是以工程為中心的,即每個應用程序都對應一個工程。工程中可包含一個或多個文件,這些文件主要是工程文件、單元文件、窗體文件和資源文件等。
1.5.1工程文件工程文件是一個
Delphi應用程序的總體管理和描述的文件,它的文件后綴是
.dpr,是整個應用程序的主程序。工程文件由Delphi7自動生成,一般情況下不修改這個文件。下面是一個工程文件的程序清單。
programProject1; //保留字program說明這是一個工程文件
//文件名為Project1.dpruses//保留字uses對工程所引用的單元進行說明
Forms, //引用Forms單元
Unit1in'Unit1.pas'{Form1};
//引用Unit1單元,在當前目錄的Unit1.pas文件中,相應的窗體為Form1{$R*.res}//系統編譯命令,將擴展名為.res的二進制資源文件連接到.exe文件中去begin //工程執行部分的開始聲明
Application.Initialize;//應用程序的初始化
Application.CreateForm(TForm1,Form1);//創建窗體Form1 Application.Run; //運行程序end. //工程執行部分的結束說明1.5.2單元文件
單元文件是
Delphi的核心文件,它的文件后綴是
.pas。在Delphi7中每個窗體都有一個單元文件與之相對應,窗體的單元文件包含了程序部分,用以控制窗體的行為。在一個工程中,還可以建立與窗體無關的單元文件,用來編寫工程中公用的函數、過程或定義新的數據。許多工程還調用了Delphi7附加庫或其單元文件中的過程或函數。uses子句中包含的公共單元文件包含了支持可視窗體及其控制的對象聲明。這些單元也包含了用于激活窗體的事件處理過程程序。(詳見本教程P20~P21)1.5.3窗體文件
窗體文件記錄設計時窗體和組件的屬性,它的文件后綴是
.dfm。一個或多個窗體文件,它們含有相應的單元文件。dfm文件在
Delphi7下是一種腳本化的文本文件。在Delphi7中,一個應用程序至少需要一個窗體。可以在窗體上單擊鼠標右鍵,選擇
【ViewasText】命令,窗體將在代碼編輯器中顯示為文本格式。
(代碼省略,詳見本教程P21~P22)1.5.4資源文件
資源文件中可以包含各種資源,用它可豐富應用程序,它的文件后綴是
.res。編譯器可以把資源文件鏈接到可執行文件里。資源文件的生成和編輯需要有專門的工具,如
Delphi7附帶的
ImageEditor,利用它就可以創建、打開、編輯和保存圖片資源。1.5.5其他文件后綴格式為如下形式:*.~pas:Delphi單元的備份文件;*.dof:Delphi中的有關配置和選項文件;*.dcu:Delphi的中間編譯單元文件;*.dpk:Delphi的包文件;*.dll:動態鏈接庫(Delphi可創建的一種終端文件);*.ocx:ActiveX控件(Delphi可創建的一種終端文件);
*.exe:可執行文件(Delphi可創建的一種終端文件)。
1.6Delphi簡單應用程序實例
本節要創建一個簡單的應用程序。啟動Delphi7程序,出現一個窗口,窗體標題欄中顯示“演示程序”字樣,在窗體上顯示一行文字“歡迎使用Delphi7開發工具!”;單擊窗體中“測試”按鈕,彈出信息框告知“我成功了!”;單擊窗體中的“退出”按鈕,能夠退出應用程序。通過設計一個簡單的應用程序。掌握以下內容:
應用程序開發過程;
常用開發工具及功能;
應用程序組成;
應用程序編譯及執行。
在Delphi7中開發的每個應用程序都被稱為工程。Delphi7編程首先從創建一個新工程開始。創建新工程有以下兩種方法:
1.6.1建立用戶界面的對象(1)
新創建的工程中包含一個默認窗體(Form1)和它對應的單元(Unit1),根據工程的需要可添加窗體或單元。工程文件的擴展名為.dpr。打開一個已建立的工程的方法是:單擊File菜單,指向OpenProject,然后選擇工程文件即可。⑴啟動Delphi7進入開發環境,此時系統自動生成一個工程,默認名為Project1;⑵選擇File菜單,指向New,然后單擊Application系統將創建一個新的工程。1.6.1建立用戶界面的對象(2)
程序設計首先是窗體設計。因此第一項工作就是在窗體設計器完成窗體設計,在窗體中添加各種所需對象進行界面設計。將組件板上的組件添加到窗體上有三種方法。(1)單擊組件板上所需組件的按鈕,然后在窗體適當位置拖動鼠標畫出組件,即可將組件添加到窗體指定位置。(2)雙擊組件板上所需組件的按鈕,即可將組件添加到窗體中心位置。(3)按下Shift鍵不放,單擊組件板上所需組件的按鈕,所選擇組件出現藍色邊框,同時對象選擇按鈕彈起。可以在窗體適當位置連續畫出該類組件,用鼠標單擊對象選擇按鈕,可以取消該類組件的連續添加操作。
本例中共涉及3個對象:1個TLabel組件和2個TBotton組件。Label組件用來顯示信息,不能用于輸入;Button組件用來執行有關操作;窗體是上述對象的載體
1.6.1建立用戶界面的對象(3)
如果組件在窗體中的位置不合適,可以用鼠標拖動的方法進行移動,直到對所有組件的位置感到滿意為止。剛添加到窗體中的組件,其邊框上有八個黑色小方塊,表明它是當前被選定的組件。可以用鼠標拖拉邊框上黑色小方塊使組件在相應方向上放大或縮小,也可用鼠標指向組件內部,按下鼠標左鍵并拖動鼠標到窗體的任意位置。按組合鍵Ctrl+C可以對所選組件進行復制,Ctrl+V可以在窗體中進行粘貼,按Delete鍵可以刪除所選組件1.6.2對象屬性設置(3)在
Delphi中,設置窗體和組件的屬性是通過對象檢查器實現的,對象檢查器是設計界面過程中最頻繁使用的工具。選中窗體上要設置屬性的組件,對象檢查器會顯示該組件的所有屬性,只需對要改變的屬性后面的值進行修改就可以了。本例中,各組件的屬性設置:
組件名稱組件屬性屬性值說明Label1Caption空值使Label1中不顯示任何文字AutoSizeTrue使Label1大小隨里面的內容變化和適應Button1Caption測試在Button1按鈕上顯示指定文字Button2Caption退出在Button2按鈕上顯示指定文字1.6.3對象事件過程及編程(1)
建立了用戶界面并為每個對象設置了屬性后,就要考慮用什么事件來激發對象執行所需要的操作。這涉及到選擇對象的事件和編寫事件過程代碼。為了在窗體上顯示“歡迎使用
Delphi7開發工具!”,同時改變窗體的標題為“演示程序”,需對Form1窗體的OnCreate事件進行編程。代碼如下:procedureTForm1.FormCreate(Sender:TObject);beginForm1.Caption:='演示程序';Label1.Caption:='歡迎使用
Delphi7開發工具!';end;1.6.3對象事件過程及編程(2)
為了實現單擊“測試”按鈕彈出對話框功能,需在Button1的OnClick事件中進行編程。方法是:選擇Button1對象,在對象監視器中選擇“事件”選項卡,在事件選項卡中選擇OnClick事件,雙擊事件處理欄,Delphi自動生成該事件過程的代碼框架,同時打開代碼編輯窗口,將光標定位在代碼框架過程體的首行處,在過程體中加入如下代碼:ShowMessage('我成功了!');
輸入完畢可以看到按鈕Button1的鼠標單擊事件處理程序的全部內容是:procedureTForm1.Button1Click(Sender:TObject);begin
ShowMessage('我成功了!');
end;end.1.6.3對象事件過程及編程(3)同樣,輸入完畢的Button2按鈕的鼠標單擊事件處理程序的全部內容是:procedureTForm1.Button1Click(Sender:TObject);begin
Close;
end;end.1.6.4編譯、調試、執行
Delphi是先編譯后執行的程序,它不是解釋執行的。所以一般可先使用菜單【Project】|【BuildAllProjects】進行編譯程序,但更多的時候是直接使用菜單【Run】|【Run】來直接運行一個程序,因為它會先編譯,如果沒錯誤再運行。
程序運行結果如圖1-16所示,當出現一個名為Delphi7程序的窗口,單擊窗口上的顯示按鈕,顯示一行文字“第一個Delphi7程序”,單擊窗體右上方關閉按鈕時退出程序。在程序中除了語法錯誤,還有可能在程序運行中出現錯誤,這就要涉及到程序的調試。Delphi7為程序員提供了方便的程序調試手段。圖1-15程序運行結果1.6.5保存工程
當程序調試完畢沒有任何問題時,還要注意保存程序。可通過菜單【File】|【SaveAll】保存所有文件,也可以單個保存每一個要保存的文件。
打開Sample目錄可以發現有六個文件,分別是Main.dfm、Main.pas、Sample.cfg、Sample.dof、Sample.dpr、Sample.res。應當注意,一個應用程序并不是只由一個文件組成,而是由許多不同類型的文件組成的。
OOPPascal基礎知識
內容提要
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.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。使用它
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 寧夏葡萄酒與防沙治沙職業技術學院《針灸學(何璐)》2023-2024學年第一學期期末試卷
- 云南林業職業技術學院《建筑設備自動化》2023-2024學年第二學期期末試卷
- 山西醫科大學《建筑設備與工程項目管理》2023-2024學年第二學期期末試卷
- 山東省文登市大水泊中學2025年高考沖刺模擬(五)語文試題試卷含解析
- 上蔡縣2025年五年級數學第二學期期末統考模擬試題含答案
- 日照職業技術學院《外科護理學實訓》2023-2024學年第一學期期末試卷
- 內蒙古巴彥淖爾市杭錦后旗四校聯考2025年初三下學期第一次模擬考試英語試題試卷-解析版含答案
- 四川省涼山彝族自治州布拖縣2025屆五年級數學第二學期期末質量檢測模擬試題含答案
- 南寧職業技術學院《近距離無線通信技術》2023-2024學年第二學期期末試卷
- 山西省大同市礦區2025年三下數學期末教學質量檢測模擬試題含解析
- 試劑冷鏈配送方案
- 統編版(2024)七年級下冊語文期末復習:古詩文默寫 刷題練習題(含答案解析)
- 中考英語專項練習-語法填空20篇(含解析)
- 國家森林公園景區信息化建設規劃方案
- 2025年江蘇安東控股集團有限公司招聘筆試參考題庫含答案解析
- 大學生應征入伍學費補償申請表
- 《海爾集團應收賬款管理制度現狀及存在的問題探析(數據圖表論文)》10000字
- 2024年四川省甘孜州阿壩州中考英語試卷真題(含答案解析)
- 2024年學校總務主任述職報告德能勤績廉
- 2025年燒烤店創業計劃書
- 人教版七年級下冊生物期中考試試卷及答案
評論
0/150
提交評論