亚洲欧美第一页_禁久久精品乱码_粉嫩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" aLink=#9900ff link=#006699 vLink=#006699 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%"  bgcolor="#e0e0e0"><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>
<A HREF="../../../../index.htm"><FONT style="FONT-SIZE: 9pt">回首頁</font></A><BR>
</strong>
</TD>
<TD class="tt2" bgcolor="#F5F8F8" width="84%"><center><B><FONT style="FONT-SIZE: 16.5pt" COLOR="#FF6666" FACE="楷體_GB2312">第二十章 開發Delphi對象式數據管理功能(一)</FONT></B></center>
<hr color="#EE9B73" size="1" width="94%">
<p>  面向對象技術是九十年代的主流技術,各類應用軟件如果以面向對象的方法構造并且滲透面向對象的風格將使軟件具有更高的品質。在面向對象程序設計中,對象式數據管理占有很重要的地位。在</font><font
face="Arial">Delphi</font><font face="宋體" lang="ZH-CN">中,對對象式數據管理的支持方式是其一大特色。</font><font
face="Arial"></p>
<p>Delphi</font><font face="宋體" lang="ZH-CN">是一個面向對象的可視化設計與面向對象的語言相結合的集成開發環境。</font><font
face="Arial">Delphi</font><font face="宋體" lang="ZH-CN">的核心是部件。部件是對象的一種。</font><font
face="Arial">Delphi</font><font face="宋體" lang="ZH-CN">應用程序完全是由部件來構造的,因此開發高性能的</font><font
face="Arial">Delphi</font><font face="宋體" lang="ZH-CN">應用程序必然會涉及對象式數據管理技術。</font><font
face="Arial"></p>
<p></font><font face="宋體" lang="ZH-CN">對象式數據管理包括兩方面的內容:</font><font
face="Arial"></p>
<p></font><font face="宋體" lang="ZH-CN">●</font><font face="Arial"> </font><font
face="宋體" lang="ZH-CN">用對象來管理數據</font><font face="Arial"></p>
<p></font><font face="宋體" lang="ZH-CN">●</font><font face="Arial"> </font><font
face="宋體" lang="ZH-CN">對各類數據對象(包括對象和部件)的管理</font><font
face="Arial"></p>
<p></font> <font face="Arial"></p>
<p>Delphi</font><font face="宋體" lang="ZH-CN">在這兩方面都做的相當出色。在</font><font
face="Arial">Delphi</font><font face="宋體" lang="ZH-CN">的早期版本</font><font
face="Arial">Turbo Pascal </font><font face="宋體" lang="ZH-CN">中就曾有流</font><font
face="Arial">(Stream)</font><font face="宋體" lang="ZH-CN">、群</font><font
face="Arial">(Collection)</font><font face="宋體" lang="ZH-CN">和資源</font><font
face="Arial">(Resource)</font><font face="宋體" lang="ZH-CN">等專門用于對象式數據管理的類。在</font><font
face="Arial">Delphi</font><font face="宋體" lang="ZH-CN">中,這些功能得到了大大的加強。</font><font
face="Arial">Delphi</font><font face="宋體" lang="ZH-CN">將對象式數據管理類歸結為</font><font
face="Arial">Stream</font><font face="宋體" lang="ZH-CN">對象</font><font face="Arial">(Stream)</font><font
face="宋體" 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><font
face="宋體" lang="ZH-CN">)的方方面面。它們不僅提供了在內存、外存和</font><font
face="Arial">Windows</font><font face="宋體" lang="ZH-CN">資源中管理對象的功能,還提供了在數據庫</font><font
face="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><font
face="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><font
face="Arial">TStream</font><font face="宋體" lang="ZH-CN">、</font><font face="Arial">THandleStream</font><font
face="宋體" lang="ZH-CN">、</font><font face="Arial">TFileStream</font><font
face="宋體" lang="ZH-CN">、</font><font face="Arial">TMemoryStream</font><font
face="宋體" lang="ZH-CN">、</font><font face="Arial">TResourceStream</font><font
face="宋體" lang="ZH-CN">和</font><font face="Arial">TBlobStream</font><font
face="宋體" lang="ZH-CN">等的統稱。它們分別代表了在各種媒介上存儲數據的能力,它們將各種數據類型</font><font
face="Arial">(</font><font face="宋體" lang="ZH-CN">包括對象和部件</font><font
face="Arial">) </font><font face="宋體" lang="ZH-CN">在內存、外存和數據庫字段中的管理操作抽象為對象方法,并且充分利用了面向對象技術的優點,應用程序可以相當容易地在各種</font><font
face="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><font
face="Arial">TStream </font><font face="宋體" lang="ZH-CN">對象繼承的對象用于在內存、</font><font
face="Arial">Windows</font><font face="宋體" lang="ZH-CN">資源文件、磁盤文件和數據庫字段等媒介中存儲數據。</p>
<p>  </font><font face="Arial">TStream</font><font face="宋體" lang="ZH-CN">中定義了兩個屬性:</font><font
face="Arial">Size</font><font face="宋體" lang="ZH-CN">和</font><font face="Arial">Position</font><font
face="宋體" lang="ZH-CN">。它們分別以字節為單位表示的流的大小和當前指針位置。</font><font
face="Arial">TStream</font><font face="宋體" lang="ZH-CN">中定義的方法用于在各種流中讀、寫和相互拷貝二進制數據。因為所有的</font><font
face="Arial">Stream</font><font face="宋體" lang="ZH-CN">對象都是從</font><font
face="Arial">TStream</font><font face="宋體" lang="ZH-CN">中繼承來的,所以在</font><font
face="Arial">TStream</font><font face="宋體" lang="ZH-CN">中定義的域和方法都能被</font><font
face="Arial">Stream</font><font face="宋體" lang="ZH-CN">對象調用和訪問。此外,又由于面向對象技術的動態聯編功能,</font><font
face="Arial">TStream</font><font face="宋體" lang="ZH-CN">為各種流的應用提供了統一的接口,簡化了流的使用;不同</font><font
face="Arial">Stream</font><font face="宋體" lang="ZH-CN">對象是抽象了對不同存儲媒介的數據上的操作,因此,</font><font
face="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><font
face="Arial"></p>
<p></font><font face="宋體" lang="ZH-CN">聲明:</font><font face="Arial">property
Position: 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><font
face="宋體" lang="ZH-CN">所指定的流中拷貝</font><font face="Arial">Count</font><font
face="宋體" lang="ZH-CN">個字節到當前流中,</font> <font face="宋體"
lang="ZH-CN">并將指針從當前位置移動</font><font face="Arial">Count</font><font
face="宋體" 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><font
face="Arial">Count</font><font face="宋體" lang="ZH-CN">個字節的內容復制到</font><font
face="Arial">Buffer</font><font face="宋體" lang="ZH-CN">中,并把當前指針向后移動</font><font
face="Arial">Count</font><font face="宋體" lang="ZH-CN">個字節數,函數返回值是實際讀的字節數。如果返回值小于</font><font
face="Arial">Count</font><font face="宋體" lang="ZH-CN">,這意味著讀操作在讀滿所需字節數前指針已經到達了流的尾部。</p>
<p>  </font><font face="Arial">Read</font><font face="宋體" lang="ZH-CN">方法是抽象方法。每個后繼</font><font
face="Arial">Stream</font><font face="宋體" lang="ZH-CN">對象都要根據自己特有的有關特定存儲媒介的讀操作覆蓋該方法。而且流的所有其它的讀數據的方法(如:</font><font
face="Arial">ReadBuffer</font><font face="宋體" lang="ZH-CN">,</font><font
face="Arial">ReadComponent</font><font face="宋體" lang="ZH-CN">等)在完成實際的讀操作時都調用了</font><font
face="Arial">Read</font><font face="宋體" lang="ZH-CN">方法。面向對象的動態聯編的優點就體現在這兒。因為后繼</font><font
face="Arial">Stream</font><font face="宋體" lang="ZH-CN">對象只需覆蓋</font><font
face="Arial">Read</font><font face="宋體" lang="ZH-CN">方法,而其它讀操作</font><font
face="Arial">(</font><font face="宋體" lang="ZH-CN">如</font><font face="Arial">ReadBuffer</font><font
face="宋體" lang="ZH-CN">、</font><font face="Arial">ReadComponent</font><font
face="宋體" lang="ZH-CN">等</font><font face="Arial">)</font><font face="宋體"
lang="ZH-CN">都不需要重新定義,而且</font><font face="Arial">TStream</font><font
face="宋體" 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><font
face="Arial">Count</font><font face="宋體" lang="ZH-CN">個字節復制到</font><font
face="Arial">Buffer </font><font face="宋體" lang="ZH-CN">中,</font> <font
face="宋體" lang="ZH-CN">并將流的當前指針向后移動</font><font face="Arial">Count</font><font
face="宋體" lang="ZH-CN">個字節。如讀操作超過流的尾部,</font><font
face="Arial">ReadBuffer</font><font face="宋體" lang="ZH-CN">方法引起</font><font
face="Arial">EReadError</font><font face="宋體" lang="ZH-CN">異常事件。</p>
<p>  </font><font face="Arial">6. ReadComponent</font><font face="宋體" lang="ZH-CN">方法</font><font
face="Arial"></p>
<p></font><font face="宋體" lang="ZH-CN"> </font> <font face="宋體" lang="ZH-CN">聲明:</font><font
face="Arial">function ReadComponent(Instance: TComponent): TComponent; </p>
<p>ReadComponent</font><font face="宋體" lang="ZH-CN">方法從當前流中讀取由</font><font
face="Arial">Instance</font><font face="宋體" lang="ZH-CN">所指定的部件,函數返回所讀的部件。</font><font
face="Arial">ReadComponent</font><font face="宋體" lang="ZH-CN">在讀</font><font
face="Arial">Instance</font><font face="宋體" lang="ZH-CN">及其擁有的所有對象時創建了一個</font><font
face="Arial">Reader</font><font face="宋體" lang="ZH-CN">對象并調用它的</font><font
face="Arial">ReadRootComponent</font><font face="宋體" lang="ZH-CN">方法。</p>
<p>  如果</font><font face="Arial">Instance</font><font face="宋體" lang="ZH-CN">為</font><font
face="Arial">nil</font><font face="宋體" lang="ZH-CN">,</font><font face="Arial">ReadComponent</font><font
face="宋體" 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><font
face="Arial">Instance</font><font face="宋體" lang="ZH-CN">指定的部件,但是流的當前位置必須是由</font><font
face="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><font
face="宋體" lang="ZH-CN">方法讀取</font><font face="Arial">Instance</font><font
face="宋體" lang="ZH-CN">。如果流的當前位置不包含一個資源頭。</font><font

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩高清在线一区| 欧美一二三在线| 不卡一区在线观看| 成人午夜免费视频| av亚洲精华国产精华精| 不卡区在线中文字幕| 99re66热这里只有精品3直播| 国产成人免费在线观看| 国产成人在线色| 暴力调教一区二区三区| 91蝌蚪porny九色| 欧美视频一区二区三区在线观看 | 国产精品99久久不卡二区| 麻豆视频观看网址久久| 韩日av一区二区| 懂色av一区二区三区免费观看| 成人av中文字幕| 91年精品国产| 日韩欧美一区二区久久婷婷| 国产视频一区二区在线观看| 国产精品色一区二区三区| 一区二区国产盗摄色噜噜| 轻轻草成人在线| 成人一级视频在线观看| 色婷婷久久一区二区三区麻豆| 欧美日韩另类国产亚洲欧美一级| 日韩欧美一区中文| 国产精品久久久久久久久果冻传媒| 亚洲视频综合在线| 青青草国产精品亚洲专区无| 国产成人一级电影| 欧美伊人久久久久久久久影院 | 亚洲欧美自拍偷拍| 日本美女视频一区二区| 国产成人午夜精品影院观看视频| 97久久超碰国产精品| 日韩欧美另类在线| 亚洲丝袜制服诱惑| 国内精品免费**视频| 色噜噜狠狠一区二区三区果冻| 日韩一二三四区| 亚洲欧美日韩精品久久久久| 麻豆精品精品国产自在97香蕉| 粉嫩蜜臀av国产精品网站| 欧美猛男gaygay网站| 欧美国产成人在线| 久久精品99国产精品| 色94色欧美sute亚洲线路一久 | 成人国产精品视频| 欧美一区二区三区播放老司机| 国产精品的网站| 韩国av一区二区三区| 欧美丰满一区二区免费视频| 国产精品免费久久久久| 韩国成人福利片在线播放| 在线不卡中文字幕| 亚洲国产成人av| 色综合久久综合网97色综合| 国产婷婷精品av在线| 欧美a一区二区| 4438成人网| 五月综合激情网| 欧美伊人久久大香线蕉综合69 | 国产酒店精品激情| 日韩一级片网站| 偷拍一区二区三区| 欧美日本韩国一区| 亚洲小说欧美激情另类| 91玉足脚交白嫩脚丫在线播放| 国产女主播在线一区二区| 国产一区二区三区四区五区美女| 91精品国产综合久久国产大片| 亚洲国产成人精品视频| 欧美色倩网站大全免费| 亚洲午夜av在线| 欧美日韩国产综合一区二区| 亚洲国产裸拍裸体视频在线观看乱了| 色综合天天性综合| 一区二区三区在线播| 欧美日韩国产综合草草| 亚洲大尺度视频在线观看| 欧美人与禽zozo性伦| 美美哒免费高清在线观看视频一区二区 | 在线电影国产精品| 日韩主播视频在线| 欧美一二三四在线| 国产精品自在在线| 国产精品你懂的在线欣赏| 成人国产免费视频| 一区二区三区精品视频| 欧美视频中文一区二区三区在线观看| 国产精品三级电影| 在线精品视频小说1| 青青草国产精品97视觉盛宴| 精品久久久久久亚洲综合网| 粉嫩绯色av一区二区在线观看| 国产精品麻豆一区二区| 91精品1区2区| 久久99精品久久久久久| 国产精品久久久久三级| 在线播放一区二区三区| 国产精品自拍av| 一区二区在线观看免费视频播放 | 精品一区二区三区的国产在线播放| 精品久久久久久久一区二区蜜臀| 成人免费看片app下载| 午夜精品影院在线观看| 久久久久久久久99精品| 91国产免费观看| 九色综合国产一区二区三区| 中文字幕一区二区三区在线播放| 911国产精品| caoporm超碰国产精品| 久色婷婷小香蕉久久| 亚洲精品视频免费看| 久久精品一区二区三区四区| 欧美日韩情趣电影| 成人av电影在线观看| 另类调教123区| 亚洲精品免费看| 国产清纯在线一区二区www| 欧美无砖专区一中文字| 成人一区二区三区在线观看| 视频一区视频二区中文| 亚洲婷婷综合色高清在线| 日韩美一区二区三区| 91麻豆国产自产在线观看| 久久精品国产亚洲一区二区三区| 久久精品欧美一区二区三区不卡| 欧美日韩免费高清一区色橹橹| 国产白丝精品91爽爽久久 | 日韩欧美一区在线观看| 在线欧美日韩国产| 99久久婷婷国产综合精品电影 | 国产最新精品免费| 美女精品自拍一二三四| 亚瑟在线精品视频| 亚洲在线一区二区三区| 亚洲欧美日韩国产成人精品影院 | 精品一区二区av| 日本91福利区| 天天色天天爱天天射综合| 亚洲国产va精品久久久不卡综合| 亚洲欧美怡红院| 日韩美女久久久| **欧美大码日韩| 国产精品成人免费在线| 国产日韩欧美综合在线| 久久久精品人体av艺术| 2023国产精品| 国产清纯美女被跳蛋高潮一区二区久久w | 在线视频综合导航| 本田岬高潮一区二区三区| 成人国产亚洲欧美成人综合网 | 免费不卡在线观看| 青青草97国产精品免费观看 | 欧美高清一级片在线观看| 2020国产精品| 国产精品天天看| 成人欧美一区二区三区白人| 18欧美乱大交hd1984| 一区二区在线观看视频在线观看| 亚洲卡通动漫在线| 日韩专区欧美专区| 激情欧美一区二区| 丁香婷婷综合五月| 色999日韩国产欧美一区二区| 欧美性一二三区| 欧美草草影院在线视频| 久久久精品影视| 一区二区三区小说| 欧美bbbbb| 99免费精品视频| 欧美欧美欧美欧美| 久久精品视频一区二区| 国产精品污网站| 午夜精品在线看| 国产精品99久久不卡二区| 99久久99久久免费精品蜜臀| 欧美亚一区二区| 久久先锋影音av| 亚洲午夜一区二区三区| 狠狠色综合色综合网络| av在线不卡免费看| 欧美人与z0zoxxxx视频| 欧美韩国一区二区| 亚洲国产wwwccc36天堂| 国产精品一二三区在线| 欧美日韩精品二区第二页| 久久久久免费观看| 午夜精品影院在线观看| 9久草视频在线视频精品| 欧美一区中文字幕| 亚洲欧美日韩系列| 国产成人啪午夜精品网站男同| 欧美视频在线观看一区二区| 国产欧美va欧美不卡在线| 首页亚洲欧美制服丝腿| 99久久久久免费精品国产| 精品国产91亚洲一区二区三区婷婷 |