⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 h20000324-11.htm

📁 对于学习很有帮助
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<html><head><script language="JavaScript">	function reset(){   for ( var i=0; i < document.Form1.elements.length; i++ )     { document.Form1.elements[i].options[0].selected=true }}function going(url){        parent.location=url;        reset();}</script><style><!--A:link {text-decoration: none; color: #000000; font-family: 宋体}A:visited {text-decoration: none; color: #000000; font-family: 宋体}A:active {text-decoration: none; font-family: 宋体}A:hover {text-decoration: underline:#ffffff; color: #ff0000}body,table {font-size: 9pt; font-family: 宋体}.H1 {font-size: 9pt ; line-height:9pt; align=center}.ourfont {font-size: 9pt ; line-height:9pt; }.ourfont1 {font-size: 9pt ; line-height:9pt; }--></style><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>Delphi 4增訂的Object Pascal</title></head><body topmargin="0" leftmargin="0"><div align="center"><center><table border="0" cellPadding="0" cellSpacing="0" width="700"><tbody>  <tr>    <td><p class="content4"><span class="font"><img border="0" height="3" src="../../soft/pix.gif" width="700"></span></td>  </tr></tbody></table></center></div><div align="center"><center><table border="0" cellPadding="0" cellSpacing="0" width="700"><tbody>  <tr>    <td bgColor="#3399ff" width="658"><p class="ourfont"><span class="font">&nbsp; </span><a style="text-decoration: none; color: rgb(255,255,255)" href="../os/H00705-2.htm">操作系统</a><font color="#FFFFFF"><span class="font"><span> |</span></span></font><a style="color: rgb(255,255,255); text-decoration: none" href="../image/H00705-14.htm">图像处理</a><font color="#FFFFFF"><span>|<span class="font"> </span></span></font><a style="color: rgb(255,255,255); text-decoration: none" href="../autoCAD/H00705-19.htm">辅助设计</a><span class="font"><font color="#FFFFFF"><span> | </span></font></span><a style="color: rgb(255,255,255); text-decoration: none" href="../data/H00705-18.htm">数     据 库</a><span class="font"><font color="#FFFFFF"><span> | </span></font></span><a style="color: rgb(255,255,255); text-decoration: none" href="H00706-1.htm">高级编程</a><span class="font"><font color="#FFFFFF"><span> | </span></font></span><a style="color: rgb(255,255,255); text-decoration: none" href="../netuse/H00705-20.htm">网络应用</a><font color="#FFFFFF"><span><span class="font"> | </span></span></font><a style="color: rgb(255,255,255); text-decoration: none" href="../webpage/H00705-21.htm">网页制作</a><font color="#FFFFFF"><span><span class="font"> |</span></span></font> <a style="color: rgb(255,255,255); text-decoration: none" href="../technic/H00706-3.htm">技术交流     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </a><a style="color: rgb(255,255,255); text-decoration: none" href="http://202.100.13.77/clslyb/default.asp?clsid=jiaoc"><font color="#FFFFFF"><strong>过客留言</strong></font></a></td>    <td bgColor="#3399ff" width="32"><p align="center" class="ourfont"><a href="mailto:net@163.sn.cn"><img src="../../soft/email.gif" alt="email.gif (493 字节)" border="0" WIDTH="20" HEIGHT="19"></a></td>  </tr></tbody></table></center></div><div align="center"><center><table border="1" cellSpacing="1" width="700" bordercolor="#3399FF"><tbody>  <tr>    <td align="left" bgColor="#FFFFFF" vAlign="top" width="700" bordercolor="#0000FF" bordercolorlight="#0000FF" bordercolordark="#0000FF"><p class="ourfont"> </p>    <p align="center"><b>Delphi 4增訂的Object Pascal</b></p>    <p align="left"><br>    <br>    本附錄在於說明Delphi 4新增訂的Object Pascal程式語言。總結來說,Delphi     4的Object Pascal增訂了以下幾大部分:<br>    <br>    新增加數種內定資料型態。<br>    <br>    Dynamic Arrays<br>    Method and Routine Overloading<br>    Default Parameters.<br>    Implementating interfaces by delegation,<br>    <br>    可用以下的寫法:<br>    property MyInterface: IMyInterface read FMyInterface&nbsp;<br>    implements IMyInterface;<br>    <br>    新增的內定資料型態<br>    整數方面:<br>    <br>    新增加Int64這種長度六十四位元,範圍從-2^63 to 2^63 - 1。<br>    32-bit unsigned integer新增加Longword型態,範圍從0..4294967295。<br>    Cardinal的範圍調整成與上述Longword型態相同。<br>    <br>    浮點數方面:<br>    Real型態基於效率考量,由過去佔用48-bit調整成64-bits,<br>    新增加Real48型態,精確度與過去的Real相同,仍是48-bit。<br>    <br>    Dynamic Array<br>    Delphi 4問世之前,Delphi程式設計師若需要動態長度的陣列,在不得已的情況下,往往採用以下這種「表面上陣列的語法,但實際自己配置管理記憶體」的方式來處理動態陣列:<br>    #0001 procedure TForm1.Button1Click(Sender: TObject);<br>    #0002 type<br>    #0003 TIntegerArray = array[0..0] of integer;&nbsp;<br>    #0004 PIntegerArray = ^TIntegerArray;<br>    #0005 var<br>    #0006 pArrayOfInteger: PIntegerArray;&nbsp;<br>    #0007 j: integer;<br>    #0008 begin<br>    #0009 GetMem(pArrayOfInteger, 10 * SizeOf(Integer));&nbsp;<br>    #0010 for j := 0 to 9 do<br>    #0011 pArrayOfInteger^[j] := j;&nbsp;<br>    #0012 FreeMem(pArrayOfInteger, 10 * SizeOf(Integer));<br>    #0013 end;<br>    <br>    如果應用Delphi 4新增加的Dynamic Array,則可改用以下的方式:<br>    <br>    var MyFlexibleArray: array of Real;<br>    <br>    定義之後,以 SetLength 函數改變陣列實際配置的記憶體大小,例如:<br>    <br>    SetLength(MyFlexibleArray, 20); // 0..19<br>    <br>    方便很多,是嗎?若想知道Dynamic Array實際長度,請分別以High與Low函數判斷,傳回「-1」時,表示是一個該陣列的長度為零,例如:<br>    <br>    #0001 procedure TForm1.Button2Click(Sender: TObject);<br>    #0002 var<br>    #0003 A: array of Integer;<br>    #0004 begin<br>    #0005 ShowMessage(IntToStr(High(A))); // -1<br>    #0006 SetLength(A, 3);<br>    #0007 ShowMessage(IntToStr(High(A))); // 3<br>    #0008 A := nil;<br>    #0009 ShowMessage(IntToStr(High(A))); // -1<br>    #0010 end;<br>    <br>    上述的0008這列,指定nil值將會釋放陣列所配置到的記憶。<br>    值得注意的是,Compiler對於Dynamic Array並不會自動進行所謂的「Copy-on-Write」。請看以下的程式例:<br>    <br>    #0001 procedure TForm1.Button1Click(Sender: TObject);<br>    #0002 var<br>    #0003 A, B: array of Integer;<br>    #0004 begin<br>    #0005 SetLength(A, 1);<br>    #0006 A[0] := 1;<br>    #0007 B := A;<br>    #0008 B[0] := 2;<br>    #0009 ShowMessage(IntToStr(A[0])); // ==&gt; 2<br>    #0010 end;<br>    <br>    0008這列改的雖是B[0],但Compiler顯然還沒有聰明到在可能修改陣列內容時,將陣列內容複製一份出來(Copy     on (possible) Write),於是,0009這列程式顯示的結果仍是2。<br>    於是,若要進行兩陣列各索引項目一對一的內容複製,只好自行寫迴圈一一複製,或者,採用較為簡便的寫法     ── 呼叫Copy函數:<br>    <br>    #0001 procedure TForm1.Button4Click(Sender: TObject);<br>    #0002 var<br>    #0003 A, B: array of Integer;<br>    #0004 begin<br>    #0005 SetLength(A, 1);<br>    #0006 A[0] := 1;<br>    #0007 B := Copy(A, 0, 1);<br>    #0008 B[0] := 2;<br>    #0009 ShowMessage(IntToStr(A[0])); // ==&gt; 1<br>    #0010 ShowMessage(IntToStr(B[0])); // ==&gt; 2<br>    #0011 end;<br>    <br>    最後,請不要將Dynamic Array與第二章提到的Open Array(開放陣列)搞混了。函式參數的開放陣列,語法雖與Dynamic     Array差不多,但開放陣列指的是:不限定傳入函式的陣列長度,Dynamic     Array則是指:可變長度的陣列,兩者畢竟有所不同。以下是一則我準備的程式範例,不難看出兩者之間的差異:<br>    <br>    #0001 type<br>    #0002 TDynamicInteger = array of integer;<br>    #0003&nbsp;<br>    #0004 procedure Clear_OpenArray(var A: array of Integer);<br>    #0005 var<br>    #0006 I: Integer;<br>    #0007 begin<br>    #0008 for I := 0 to High(A) do A[I] := 0;<br>    #0009 // SetLength(A, 20); // 不可以這麼寫<br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -