亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 051.htm

?? delphi教程
?? HTM
?? 第 1 頁 / 共 5 頁
字號:
<HTML><HEAD><meta http-equiv="Content-Type" content="text/html; charset=GB2312"><TITLE>—DELPHI基礎教程—第二十章 開發Delphi對象式數據管理功能(一)</TITLE><META NAME="keywords" CONTENT=" DELPHI基礎教程 第二十章 開發Delphi對象式數據管理功能(一)"><META NAME="description" CONTENT=" - DELPHI基礎教程 - 第二十章 開發Delphi對象式數據管理功能(一)"><style><!--#page {position:absolute; z-index:0; left:0px; top:0px}.tt3 {font: 9pt/12pt "宋體"}.tt2 {font: 12pt/15pt "宋體"}a {text-decoration:none}a:hover {color: blue;text-decoration:underline}--></style></HEAD><body text="#000000"  bgcolor="#FFFFFF" leftmargin="3" topmargin="3" marginheight="3" marginwidth="3"><TABLE WIDTH="100%" CELLPADDING=10 CELLSPACING=0 BORDER=0><TR><TD CLASS="tt3" VALIGN="top" width="8%"  ><strong><A HREF="052.htm"><FONT style="FONT-SIZE: 9pt">后一頁</font></A><BR><A HREF="050.htm"><FONT style="FONT-SIZE: 9pt">前一頁</font></A><BR><A HREF="index.html"><FONT style="FONT-SIZE: 9pt">回目錄</font></A><BR></strong></TD><TD class="tt2"  width="84%"><center><B><FONT style="FONT-SIZE: 16.5pt" COLOR="#FF6666" FACE="隸書">第二十章 開發Delphi對象式數據管理功能(一)</FONT></B></center><hr  width="94%"><p>  面向對象技術是九十年代的主流技術,各類應用軟件如果以面向對象的方法構造并且滲透面向對象的風格將使軟件具有更高的品質。在面向對象程序設計中,對象式數據管理占有很重要的地位。在</font><fontface="Arial">Delphi</font><font face="宋體" lang="ZH-CN">中,對對象式數據管理的支持方式是其一大特色。</font><fontface="Arial"></p><p>Delphi</font><font face="宋體" lang="ZH-CN">是一個面向對象的可視化設計與面向對象的語言相結合的集成開發環境。</font><fontface="Arial">Delphi</font><font face="宋體" lang="ZH-CN">的核心是部件。部件是對象的一種。</font><fontface="Arial">Delphi</font><font face="宋體" lang="ZH-CN">應用程序完全是由部件來構造的,因此開發高性能的</font><fontface="Arial">Delphi</font><font face="宋體" lang="ZH-CN">應用程序必然會涉及對象式數據管理技術。</font><fontface="Arial"></p><p></font><font face="宋體" lang="ZH-CN">對象式數據管理包括兩方面的內容:</font><fontface="Arial"></p><p></font><font face="宋體" lang="ZH-CN">●</font><font face="Arial"> </font><fontface="宋體" lang="ZH-CN">用對象來管理數據</font><font face="Arial"></p><p></font><font face="宋體" lang="ZH-CN">●</font><font face="Arial"> </font><fontface="宋體" lang="ZH-CN">對各類數據對象(包括對象和部件)的管理</font><fontface="Arial"></p><p></font> <font face="Arial"></p><p>Delphi</font><font face="宋體" lang="ZH-CN">在這兩方面都做的相當出色。在</font><fontface="Arial">Delphi</font><font face="宋體" lang="ZH-CN">的早期版本</font><fontface="Arial">Turbo Pascal </font><font face="宋體" lang="ZH-CN">中就曾有流</font><fontface="Arial">(Stream)</font><font face="宋體" lang="ZH-CN">、群</font><fontface="Arial">(Collection)</font><font face="宋體" lang="ZH-CN">和資源</font><fontface="Arial">(Resource)</font><font face="宋體" lang="ZH-CN">等專門用于對象式數據管理的類。在</font><fontface="Arial">Delphi</font><font face="宋體" lang="ZH-CN">中,這些功能得到了大大的加強。</font><fontface="Arial">Delphi</font><font face="宋體" lang="ZH-CN">將對象式數據管理類歸結為</font><fontface="Arial">Stream</font><font face="宋體" lang="ZH-CN">對象</font><font face="Arial">(Stream)</font><fontface="宋體" lang="ZH-CN">和</font><font face="Arial">Filer</font><font face="宋體"lang="ZH-CN">對象</font><font face="Arial">(Filer)</font><font face="宋體"lang="ZH-CN">,并將它們應用于可視部件類庫(</font><font face="Arial">VCL</font><fontface="宋體" lang="ZH-CN">)的方方面面。它們不僅提供了在內存、外存和</font><fontface="Arial">Windows</font><font face="宋體" lang="ZH-CN">資源中管理對象的功能,還提供了在數據庫</font><fontface="Arial">BLOB</font><font face="宋體" lang="ZH-CN">字段中對象的功能。</p><p>  在本章中將介紹</font><font face="Arial">Stream</font><font face="宋體"lang="ZH-CN">對象和</font><font face="Arial">Filer</font><font face="宋體"lang="ZH-CN">對象的實現原理、應用方法以及在超媒體系統中的應用。這對于運用</font><fontface="Arial">Delphi </font><font face="宋體" lang="ZH-CN">開發高級應用是很重要的。</p><p> </font><font face="Arial"></p><p>20.1 </font><font face="宋體" lang="ZH-CN">流式對象的實現原理和應用</p><p> </p><p>  </font><font face="Arial">Stream</font><font face="宋體" lang="ZH-CN">對象,又稱流式對象,是</font><fontface="Arial">TStream</font><font face="宋體" lang="ZH-CN">、</font><font face="Arial">THandleStream</font><fontface="宋體" lang="ZH-CN">、</font><font face="Arial">TFileStream</font><fontface="宋體" lang="ZH-CN">、</font><font face="Arial">TMemoryStream</font><fontface="宋體" lang="ZH-CN">、</font><font face="Arial">TResourceStream</font><fontface="宋體" lang="ZH-CN">和</font><font face="Arial">TBlobStream</font><fontface="宋體" lang="ZH-CN">等的統稱。它們分別代表了在各種媒介上存儲數據的能力,它們將各種數據類型</font><fontface="Arial">(</font><font face="宋體" lang="ZH-CN">包括對象和部件</font><fontface="Arial">) </font><font face="宋體" lang="ZH-CN">在內存、外存和數據庫字段中的管理操作抽象為對象方法,并且充分利用了面向對象技術的優點,應用程序可以相當容易地在各種</font><fontface="Arial">Stream</font><font face="宋體" lang="ZH-CN">對象中拷貝數據。</p><p>  下面介紹各種對象的數據和方法及使用方法。</p><p> </font><font face="Arial"></p><p>20.1.1 TStream</font><font face="宋體" lang="ZH-CN">對象</p><p> </p><p>  </font><font face="Arial">TStream</font><font face="宋體" lang="ZH-CN">對象是能在各種媒介中存儲二進制數據的對象的抽象對象。從</font><fontface="Arial">TStream </font><font face="宋體" lang="ZH-CN">對象繼承的對象用于在內存、</font><fontface="Arial">Windows</font><font face="宋體" lang="ZH-CN">資源文件、磁盤文件和數據庫字段等媒介中存儲數據。</p><p>  </font><font face="Arial">TStream</font><font face="宋體" lang="ZH-CN">中定義了兩個屬性:</font><fontface="Arial">Size</font><font face="宋體" lang="ZH-CN">和</font><font face="Arial">Position</font><fontface="宋體" lang="ZH-CN">。它們分別以字節為單位表示的流的大小和當前指針位置。</font><fontface="Arial">TStream</font><font face="宋體" lang="ZH-CN">中定義的方法用于在各種流中讀、寫和相互拷貝二進制數據。因為所有的</font><fontface="Arial">Stream</font><font face="宋體" lang="ZH-CN">對象都是從</font><fontface="Arial">TStream</font><font face="宋體" lang="ZH-CN">中繼承來的,所以在</font><fontface="Arial">TStream</font><font face="宋體" lang="ZH-CN">中定義的域和方法都能被</font><fontface="Arial">Stream</font><font face="宋體" lang="ZH-CN">對象調用和訪問。此外,又由于面向對象技術的動態聯編功能,</font><fontface="Arial">TStream</font><font face="宋體" lang="ZH-CN">為各種流的應用提供了統一的接口,簡化了流的使用;不同</font><fontface="Arial">Stream</font><font face="宋體" lang="ZH-CN">對象是抽象了對不同存儲媒介的數據上的操作,因此,</font><fontface="Arial">TStream</font><font face="宋體" lang="ZH-CN">的需方法為在不同媒介間的數據拷貝提供了最簡捷的手段。</p><p> </font><font face="Arial"></p><p>20.1.1.1 TStream</font><font face="宋體" lang="ZH-CN">的屬性和方法</p><p> </p><p>  </font><font face="Arial">1. Position</font><font face="宋體" lang="ZH-CN">屬性 </font><fontface="Arial"></p><p></font><font face="宋體" lang="ZH-CN">聲明:</font><font face="Arial">propertyPosition: Longint; </font><font face="宋體" lang="ZH-CN"></p><p>  </font><font face="Arial">Position</font><font face="宋體" lang="ZH-CN">屬性指明流中讀寫的當前偏移量。</p><p>  </font><font face="Arial">2. Size</font><font face="宋體" lang="ZH-CN">屬性</p><p>  聲明:</font><font face="Arial">property Size: Longint; </p><p>Size</font><font face="宋體" lang="ZH-CN">屬性指明了以字節為單位的流的的大小,它是只讀的。</p><p>  </font><font face="Arial">3. CopyFrom</font><font face="宋體" lang="ZH-CN">方法</p><p>  聲明:</font><font face="Arial">function CopyFrom(Source: TStream; Count:Longint): Longint; </p><p>CopyFrom</font><font face="宋體" lang="ZH-CN">從</font><font face="Arial">Source</font><fontface="宋體" lang="ZH-CN">所指定的流中拷貝</font><font face="Arial">Count</font><fontface="宋體" lang="ZH-CN">個字節到當前流中,</font> <font face="宋體"lang="ZH-CN">并將指針從當前位置移動</font><font face="Arial">Count</font><fontface="宋體" lang="ZH-CN">個字節數,函數返回值是實際拷貝的字節數。</p><p>  </font><font face="Arial">4. Read</font><font face="宋體" lang="ZH-CN">方法</p><p>  聲明:</font><font face="Arial">function Read(var Buffer; Count: Longint):Longint; virtual; abstract; </p><p>Read</font><font face="宋體" lang="ZH-CN">方法從當前流中的當前位置起將</font><fontface="Arial">Count</font><font face="宋體" lang="ZH-CN">個字節的內容復制到</font><fontface="Arial">Buffer</font><font face="宋體" lang="ZH-CN">中,并把當前指針向后移動</font><fontface="Arial">Count</font><font face="宋體" lang="ZH-CN">個字節數,函數返回值是實際讀的字節數。如果返回值小于</font><fontface="Arial">Count</font><font face="宋體" lang="ZH-CN">,這意味著讀操作在讀滿所需字節數前指針已經到達了流的尾部。</p><p>  </font><font face="Arial">Read</font><font face="宋體" lang="ZH-CN">方法是抽象方法。每個后繼</font><fontface="Arial">Stream</font><font face="宋體" lang="ZH-CN">對象都要根據自己特有的有關特定存儲媒介的讀操作覆蓋該方法。而且流的所有其它的讀數據的方法(如:</font><fontface="Arial">ReadBuffer</font><font face="宋體" lang="ZH-CN">,</font><fontface="Arial">ReadComponent</font><font face="宋體" lang="ZH-CN">等)在完成實際的讀操作時都調用了</font><fontface="Arial">Read</font><font face="宋體" lang="ZH-CN">方法。面向對象的動態聯編的優點就體現在這兒。因為后繼</font><fontface="Arial">Stream</font><font face="宋體" lang="ZH-CN">對象只需覆蓋</font><fontface="Arial">Read</font><font face="宋體" lang="ZH-CN">方法,而其它讀操作</font><fontface="Arial">(</font><font face="宋體" lang="ZH-CN">如</font><font face="Arial">ReadBuffer</font><fontface="宋體" lang="ZH-CN">、</font><font face="Arial">ReadComponent</font><fontface="宋體" lang="ZH-CN">等</font><font face="Arial">)</font><font face="宋體"lang="ZH-CN">都不需要重新定義,而且</font><font face="Arial">TStream</font><fontface="宋體" lang="ZH-CN">還提供了統一的接口。</p><p>  </font><font face="Arial">5. ReadBuffer</font><font face="宋體" lang="ZH-CN">方法</p><p>  聲明:</font><font face="Arial">procedure ReadBuffer(var Buffer; Count:Longint); </font><font face="宋體" lang="ZH-CN"></p><p>  </font><font face="Arial">ReadBuffer</font><font face="宋體" lang="ZH-CN">方法從流中將</font><fontface="Arial">Count</font><font face="宋體" lang="ZH-CN">個字節復制到</font><fontface="Arial">Buffer </font><font face="宋體" lang="ZH-CN">中,</font> <fontface="宋體" lang="ZH-CN">并將流的當前指針向后移動</font><font face="Arial">Count</font><fontface="宋體" lang="ZH-CN">個字節。如讀操作超過流的尾部,</font><fontface="Arial">ReadBuffer</font><font face="宋體" lang="ZH-CN">方法引起</font><fontface="Arial">EReadError</font><font face="宋體" lang="ZH-CN">異常事件。</p><p>  </font><font face="Arial">6. ReadComponent</font><font face="宋體" lang="ZH-CN">方法</font><fontface="Arial"></p><p></font><font face="宋體" lang="ZH-CN"> </font> <font face="宋體" lang="ZH-CN">聲明:</font><fontface="Arial">function ReadComponent(Instance: TComponent): TComponent; </p><p>ReadComponent</font><font face="宋體" lang="ZH-CN">方法從當前流中讀取由</font><fontface="Arial">Instance</font><font face="宋體" lang="ZH-CN">所指定的部件,函數返回所讀的部件。</font><fontface="Arial">ReadComponent</font><font face="宋體" lang="ZH-CN">在讀</font><fontface="Arial">Instance</font><font face="宋體" lang="ZH-CN">及其擁有的所有對象時創建了一個</font><fontface="Arial">Reader</font><font face="宋體" lang="ZH-CN">對象并調用它的</font><fontface="Arial">ReadRootComponent</font><font face="宋體" lang="ZH-CN">方法。</p><p>  如果</font><font face="Arial">Instance</font><font face="宋體" lang="ZH-CN">為</font><fontface="Arial">nil</font><font face="宋體" lang="ZH-CN">,</font><font face="Arial">ReadComponent</font><fontface="宋體" lang="ZH-CN">的方法基于流中描述的部件類型信息創建部件,并返回新創建的部件。</p><p>  </font><font face="Arial">7. ReadComponentRes</font><font face="宋體"lang="ZH-CN">方法</p><p>  聲明:</font><font face="Arial">function ReadComponentRes(Instance:TComponent): TComponent; </p><p>ReadComponentRes</font><font face="宋體" lang="ZH-CN">方法從流中讀取</font><fontface="Arial">Instance</font><font face="宋體" lang="ZH-CN">指定的部件,但是流的當前位置必須是由</font><fontface="Arial">WriteComponentRes</font><font face="宋體" lang="ZH-CN">方法所寫入的部件的位置。</p><p>  </font><font face="Arial">ReadComponentRes </font><font face="宋體"lang="ZH-CN">首先調用</font><font face="Arial">ReadResHeader</font><font face="宋體"lang="ZH-CN">方法從流中讀取資源頭,然后調用</font><font face="Arial">ReadComponent</font><fontface="宋體" lang="ZH-CN">方法讀取</font><font face="Arial">Instance</font><fontface="宋體" lang="ZH-CN">。如果流的當前位置不包含一個資源頭。</font><fontface="Arial">ReadResHeader</font><font face="宋體" lang="ZH-CN">將引發一個</font><fontface="Arial">EInvalidImage</font><font face="宋體" lang="ZH-CN">異常事件。在</font><font

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国精品**一区二区三区在线蜜桃| 亚洲色图在线看| 午夜亚洲国产au精品一区二区| 色94色欧美sute亚洲线路一久| 国产精品成人免费| 99久免费精品视频在线观看| 国产精品久久久久久妇女6080| 波多野结衣的一区二区三区| 国产精品久久三| 在线观看免费亚洲| 日韩在线卡一卡二| 精品sm捆绑视频| 成人一区二区三区在线观看| ...xxx性欧美| 欧美中文字幕一区| 日本色综合中文字幕| 亚洲精品一区在线观看| 国产凹凸在线观看一区二区| ●精品国产综合乱码久久久久| 欧美午夜电影在线播放| 另类欧美日韩国产在线| 国产日韩欧美激情| 欧洲激情一区二区| 蜜臀av性久久久久蜜臀aⅴ流畅| 久久这里只有精品首页| 99精品视频一区二区| 亚洲成年人网站在线观看| 欧美精品一区在线观看| 不卡在线视频中文字幕| 日韩中文字幕91| 久久精品日韩一区二区三区| 色婷婷综合久久久久中文| 蜜桃久久精品一区二区| 国产精品不卡一区| 91精品国产91热久久久做人人| 国产福利精品一区| 亚洲成人午夜电影| 国产婷婷一区二区| 制服丝袜亚洲网站| 99久久国产综合精品色伊| 日本中文字幕一区| 中文字幕日韩欧美一区二区三区| 欧美日韩另类一区| 成人爱爱电影网址| 乱一区二区av| 亚洲国产日日夜夜| 国产精品女主播av| 欧美va亚洲va| 欧美性极品少妇| 成人免费看视频| 美女视频黄免费的久久| 一区二区三区在线免费观看| 久久天天做天天爱综合色| 欧美日精品一区视频| 成人99免费视频| 国产一区二区三区精品视频| 午夜不卡在线视频| 亚洲最大成人综合| 国产精品美女久久久久aⅴ国产馆| 91精品福利在线一区二区三区| 99久久精品一区二区| 精品一区二区三区免费视频| 亚洲一区二区三区三| 国产精品白丝在线| 欧美激情综合在线| 日韩欧美国产综合| 91精品国产高清一区二区三区蜜臀| 91老师国产黑色丝袜在线| 粗大黑人巨茎大战欧美成人| 激情综合网最新| 久久精品国产秦先生| 日韩专区欧美专区| 日韩制服丝袜av| 午夜激情一区二区三区| 亚洲国产欧美另类丝袜| 日韩美女精品在线| 亚洲三级免费观看| 亚洲欧美福利一区二区| 日韩理论片网站| 亚洲欧美色一区| 亚洲欧美电影一区二区| 夜夜夜精品看看| 亚洲午夜免费视频| 日韩激情视频在线观看| 日韩电影一区二区三区四区| 天天色 色综合| 日本中文字幕一区| 韩国视频一区二区| 久久福利视频一区二区| 国产真实乱对白精彩久久| 国内精品伊人久久久久av影院| 久久97超碰国产精品超碰| 久久爱www久久做| 国产电影精品久久禁18| www.欧美日韩国产在线| 色综合色综合色综合| 欧美在线制服丝袜| 这里只有精品免费| 久久久久久久久97黄色工厂| 国产精品污网站| 亚洲欧美电影一区二区| 天天操天天色综合| 国产一区二区网址| 99久久精品免费看| 欧美日韩国产片| 精品日韩欧美一区二区| 国产精品久久影院| 午夜在线成人av| 开心九九激情九九欧美日韩精美视频电影| 久久精品999| 成人h精品动漫一区二区三区| 在线一区二区三区四区五区| 91精品婷婷国产综合久久性色 | 日韩成人午夜精品| 精品影视av免费| 97久久精品人人做人人爽| 欧美三级韩国三级日本三斤| 精品久久久久久久久久久院品网| 中文字幕成人网| 亚洲成a人v欧美综合天堂下载 | 亚洲午夜av在线| 极品少妇一区二区三区精品视频| 国产suv一区二区三区88区| 色噜噜狠狠成人网p站| 日韩欧美色电影| 亚洲色图一区二区| 久久99精品久久只有精品| 一本久久精品一区二区| 精品粉嫩aⅴ一区二区三区四区| 国产精品亲子乱子伦xxxx裸| 奇米亚洲午夜久久精品| 99久久精品国产精品久久| 欧美一二三区在线观看| 日韩毛片一二三区| 国产麻豆精品95视频| 4438亚洲最大| 亚洲男人的天堂av| 国产精品亚洲第一区在线暖暖韩国| 91激情五月电影| 亚洲国产精品国自产拍av| 美女在线观看视频一区二区| 在线观看一区二区视频| 国产婷婷色一区二区三区四区 | 欧美草草影院在线视频| 伊人性伊人情综合网| 国产永久精品大片wwwapp| 69久久99精品久久久久婷婷| 亚洲日本在线a| 国产不卡视频在线观看| 日韩免费观看高清完整版在线观看| 一区二区三区自拍| av不卡在线观看| 日本一区二区成人| 国内精品久久久久影院一蜜桃| 91精品在线观看入口| 亚洲第一主播视频| 欧美综合亚洲图片综合区| 中文字幕在线不卡视频| 国产99精品国产| 久久综合色8888| 久久精品72免费观看| 欧美一级二级三级蜜桃| 调教+趴+乳夹+国产+精品| 欧美在线视频全部完| 亚洲另类色综合网站| 91在线观看地址| 亚洲图片另类小说| 色综合久久久网| 亚洲欧美另类综合偷拍| 99精品视频一区| 亚洲精品欧美二区三区中文字幕| 国产91丝袜在线18| 中日韩av电影| av电影一区二区| 一区二区在线免费观看| 一本一道久久a久久精品综合蜜臀| 国产精品久久久久久户外露出| 成人福利视频网站| 国产精品不卡在线观看| 99久久国产综合精品麻豆| 亚洲欧美经典视频| 欧美日韩国产乱码电影| 亚洲sss视频在线视频| 欧美日韩精品一区二区三区| 日本中文字幕一区二区视频 | 色婷婷精品久久二区二区蜜臂av| 国产精品女上位| 91久久精品一区二区三区| 亚洲美女偷拍久久| 欧美伦理影视网| 麻豆视频一区二区| 日本一区二区三区国色天香| 不卡的av电影在线观看| 亚洲最大的成人av| 欧美一区二区三区在线视频| 久久99国产乱子伦精品免费| 中文一区在线播放| 精品视频在线免费观看| 蜜桃视频在线观看一区| 中文字幕精品一区二区三区精品 |