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

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

?? 053.htm

?? Delphi基礎知識講座
?? HTM
?? 第 1 頁 / 共 4 頁
字號:
<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 background="bg.gif" leftmargin="3" topmargin="3" marginheight="3" marginwidth="3">

<TR>
<TD CLASS="tt3" VALIGN="top" width="8%"  background="bg.gif"><strong><A HREF="054.htm" ><FONT style="FONT-SIZE: 9pt">后一頁</font></A><BR>
<A HREF="052.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" background="bg.gif" 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%">
<font face="Arial"><p>20.2.1.1 TFiler</font><font face="宋體" lang="ZH-CN">對象的屬性和方法 </p>
<p>  </font><font face="Arial">1. Root</font><font face="宋體" lang="ZH-CN">屬性</p>
<p>  聲明:</font><font face="Arial">property Root: TComponent; </p>
<p>Root </font><font face="宋體" lang="ZH-CN">屬性給</font><font face="Arial">Filer</font><font
face="宋體" lang="ZH-CN">對象指出被讀寫的對象中哪一個對象是根或主要擁有者。</font><font
face="Arial">RootComponent</font><font face="宋體" lang="ZH-CN">和</font><font
face="Arial">WriteRootComponent</font><font face="宋體" lang="ZH-CN">方法在讀和寫部件及其擁有的部件前先設置</font><font
face="Arial">Root</font><font face="宋體" lang="ZH-CN">的值。</p>
<p>  </font><font face="Arial">2. Ancestor</font><font face="宋體" lang="ZH-CN">屬性</p>
<p>  聲明:</font><font face="Arial">property Ancestor: TPersistent; </p>
<p>Ancestor</font><font face="宋體" lang="ZH-CN">屬性用于往繼承下來的窗體中寫部件,因為當寫部件時,</font><font
face="Arial">Write</font><font face="宋體" lang="ZH-CN">對象只需要寫入與所繼承的部件不同的屬性,所以在寫之前要跟蹤每個繼承的部件,并且比較它們的屬性。</p>
<p>  如果</font><font face="Arial">Ancestor</font><font face="宋體" lang="ZH-CN">為</font><font
face="Arial">nil</font><font face="宋體" lang="ZH-CN">,就表示沒有相應的繼承的部件,</font><font
face="Arial">Writer</font><font face="宋體" lang="ZH-CN">對象應當將部件完全寫入流。</font><font
face="Arial">Ancestor</font><font face="宋體" lang="ZH-CN">一般為</font><font
face="Arial">nil</font><font face="宋體" lang="ZH-CN">,只有當調用</font><font
face="Arial">WriteDescendant</font><font face="宋體" lang="ZH-CN">和</font><font
face="Arial">WriteDescendantRes</font><font face="宋體" lang="ZH-CN">時,才給賦值。當編寫和覆蓋</font><font
face="Arial">DefineProperties</font><font face="宋體" lang="ZH-CN">時,必須設置</font><font
face="Arial">Ancestor</font><font face="宋體" lang="ZH-CN">的值。</p>
<p>  </font><font face="Arial">3. IgnoreChildren</font><font face="宋體"
lang="ZH-CN">屬性</p>
<p>  聲明:</font><font face="Arial">property Ignorechildren: Boolean;</p>
<p>IgnoreChildren</font><font face="宋體" lang="ZH-CN">屬性使一個</font><font
face="Arial">Writer</font><font face="宋體" lang="ZH-CN">對象存儲部件時可以不存儲該部件擁有的部件。如果</font><font
face="Arial">IgnoreChildren</font><font face="宋體" lang="ZH-CN">屬性為</font><font
face="Arial">True</font><font face="宋體" lang="ZH-CN">,則</font><font face="Arial">Writer</font><font
face="宋體" lang="ZH-CN">對象存儲部件不存它擁有的子部件。否則,</font><font
face="Arial">Writer</font><font face="宋體" lang="ZH-CN">對象將所有其擁有的對象寫入流。</p>
<p>  </font><font face="Arial">4. Create</font><font face="宋體" lang="ZH-CN">方法</p>
<p>  聲明:</font><font face="Arial">constructor Create(Stream: TStream; BufSize:
Cardinal); </p>
<p></font><font face="宋體" lang="ZH-CN"> </font><font face="Arial">Create</font><font
face="宋體" lang="ZH-CN">方法創建一個新的</font><font face="Arial">Filer</font><font
face="宋體" lang="ZH-CN">對象,建立它和流</font><font face="Arial">Stream</font><font
face="宋體" lang="ZH-CN">的聯系;并且給它分配一個緩沖區</font><font
face="Arial">Buffer</font><font face="宋體" lang="ZH-CN">。</font><font face="Arial">Buffer</font><font
face="宋體" lang="ZH-CN">的大小由</font><font face="Arial">BufSize</font><font
face="宋體" lang="ZH-CN">指定。</p>
<p>  </font><font face="Arial">5. Defineproperty</font><font face="宋體"
lang="ZH-CN">方法</p>
<p>  聲明:</font><font face="Arial">procedure Defineproperty(const Name: String;
ReadData: TReaderProc; </p>
<p>WriteData: TWriterProc; HasData: Boolean); virtual; abstract; </p>
<p>Defineproperty</font><font face="宋體" lang="ZH-CN">方法定義</font><font
face="Arial">Filer</font><font face="宋體" lang="ZH-CN">對象將作為屬性存儲的數據。</font><font
face="Arial">Name</font><font face="宋體" lang="ZH-CN">參數描述接受的屬性名,該屬性不在</font><font
face="Arial">published</font><font face="宋體" lang="ZH-CN">部分定義。</font><font
face="Arial">ReadData</font><font face="宋體" lang="ZH-CN">和</font><font face="Arial">WriteData</font><font
face="宋體" lang="ZH-CN">參數指定在存取對象時讀和寫所需數據的方法。</font><font
face="Arial">HasData</font><font face="宋體" lang="ZH-CN">參數在運行時決定了屬性是否有數據要存儲。</p>
<p>  只有當對象有數據要存儲時,才在該對象的</font><font
face="Arial">DefineProperties</font><font face="宋體" lang="ZH-CN">中調用</font><font
face="Arial">DefineProperty</font><font face="宋體" lang="ZH-CN">。</font><font
face="Arial">DefineProperties</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">DefineProperty</font><font face="宋體" lang="ZH-CN">和</font><font
face="Arial">DefineBinaryProperty</font><font face="宋體" lang="ZH-CN">方法。當定義屬性時,</font><font
face="Arial">Writer</font><font face="宋體" lang="ZH-CN">對象應當引用</font><font
face="Arial">Ancestor</font><font face="宋體" lang="ZH-CN">屬性,如果該屬性非空,</font><font
face="Arial">Writer</font><font face="宋體" lang="ZH-CN">對象應當只寫入與從</font><font
face="Arial">Ancestor</font><font face="宋體" lang="ZH-CN">繼承的不同的屬性的值。</p>
<p>  一個最簡單的例子是</font><font face="Arial">TComponent</font><font
face="宋體" lang="ZH-CN">的</font><font face="Arial">DefineProperties</font><font
face="宋體" lang="ZH-CN">方法。盡管</font><font face="Arial">TComponent </font><font
face="宋體" lang="ZH-CN">沒有在</font><font face="Arial">published</font><font
face="宋體" lang="ZH-CN">中定義</font><font face="Arial">Left</font><font
face="宋體" lang="ZH-CN">、</font><font face="Arial">Top</font><font face="宋體"
lang="ZH-CN">屬性,但該方法存儲了部件的位置信息。</p>
<p> </p>
<p></font><font face="Arial">procedure TComponent.DefineProperties(Filer: TFiler);</p>
<p>begin</p>
<p>Filer.DefineProperty('Left', ReadLeft, WriteLeft, LongRec(FDesignInfo).Lo &lt;&gt; 0);</p>
<p>Filer.DefineProperty('Top', ReadTop, WriteTop, LongRec(FDesignInfo).Hi &lt;&gt; 0);</p>
<p>end;</p>
<p></font> <font face="Arial"></p>
<p>6. DefineBinaryproperty</font><font face="宋體" lang="ZH-CN">方法</p>
<p>  聲明:</font><font face="Arial">procedure DefineBinaryproperty(const Name:
String; </p>
<p>ReadData, WriteData: TStreamProc; </p>
<p>HisData: Boolean); virtual; abstract; </p>
<p>DefineBinaryProperty</font><font face="宋體" lang="ZH-CN">方法定義</font><font
face="Arial">Filer</font><font face="宋體" lang="ZH-CN">對象作為屬性存儲的二進制數據。</font><font
face="Arial">Name</font><font face="宋體" lang="ZH-CN">參數描述屬性名。</font><font
face="Arial">ReadData</font><font face="宋體" lang="ZH-CN">和</font><font face="Arial">WriteData</font><font
face="宋體" lang="ZH-CN">參數描述所存儲的對象中讀寫所需數據的方法。</font><font
face="Arial">HasData</font><font face="宋體" lang="ZH-CN">參數在運行時決定屬性是否有數據要存。</p>
<p>  </font><font face="Arial">DefineBinaryProperty</font><font face="宋體"
lang="ZH-CN">和</font><font face="Arial">DefineProperty</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">ReadData</font><font face="宋體" lang="ZH-CN">和</font><font face="Arial">WriteData</font><font
face="宋體" lang="ZH-CN">傳入的方法,直接將對象數據寫入流或從流讀出。</p>
<p>  </font><font face="Arial">DefineBinaryProperty</font><font face="宋體"
lang="ZH-CN">屬性用得較少。只有標準的</font><font face="Arial">VCL</font><font
face="宋體" lang="ZH-CN">對象定義了象圖形、圖像之類的二進制屬性的部件中才用它。</p>
<p>  </font><font face="Arial">7. FlushBuffer</font><font face="宋體" lang="ZH-CN">方法</p>
<p>  聲明:</font><font face="Arial">procedure FlushBuffer; virtual: abstract; </p>
<p>FlushBuffer</font><font face="宋體" lang="ZH-CN">方法用于使</font><font
face="Arial">Filer</font><font face="宋體" lang="ZH-CN">對象的緩沖區與相聯的</font><font
face="Arial">Stream</font><font face="宋體" lang="ZH-CN">對象同步。對</font><font
face="Arial">Reader</font><font face="宋體" lang="ZH-CN">對象來說,是通過重新分配緩沖區;對于</font><font
face="Arial">Writer</font><font face="宋體" lang="ZH-CN">對象是通過寫入當前緩沖區。</p>
<p>  </font><font face="Arial">FlushBuffer</font><font face="宋體" lang="ZH-CN">是一個抽象方法,</font><font
face="Arial">TReader</font><font face="宋體" lang="ZH-CN">和</font><font face="Arial">TWriter</font><font
face="宋體" lang="ZH-CN">都覆蓋了它,提供了具體實現。</p>
<p> </font><font face="Arial"></p>
<p>20.2.1.2 TFiler</font><font face="宋體" lang="ZH-CN">對象的實現原理</p>
<p> </p>
<p>  </font><font face="Arial">TFiler</font><font face="宋體" lang="ZH-CN">對象是</font><font
face="Arial">Filer</font><font face="宋體" lang="ZH-CN">對象的基礎類,它定義的大多數方法都是抽象類型的,沒有具體實現它,這些方法要在</font><font
face="Arial">TReader</font><font face="宋體" lang="ZH-CN">和</font><font face="Arial">TWrite</font><font
face="宋體" lang="ZH-CN">中覆蓋。但它們提供了</font><font face="Arial">Filer</font><font
face="宋體" lang="ZH-CN">對象的框架,了解它無疑是很重要的。</p>
<p>  </font><font face="Arial">1. TFiler</font><font face="宋體" lang="ZH-CN">對象屬性的實現</p>
<p>  </font><font face="Arial">TFiler</font><font face="宋體" lang="ZH-CN">對象定義了三個屬性:</font><font
face="Arial">Root</font><font face="宋體" lang="ZH-CN">、</font><font face="Arial">Ancestor</font><font
face="宋體" lang="ZH-CN">和</font><font face="Arial">IgnoreChildren</font><font
face="宋體" lang="ZH-CN">。正如定義對象屬性通常所采用的方法那樣,要在</font><font
face="Arial">private</font><font face="宋體" lang="ZH-CN">部分定義存儲屬性值的數據域,然后在</font><font
face="Arial">public</font><font face="宋體" lang="ZH-CN">或</font><font face="Arial">Published</font><font
face="宋體" lang="ZH-CN">部分定義該屬性,并按需要增加讀寫控制。它們的定義如下:</p>
<p>  </p>
<p></font><font face="Arial">TFiler = class(TObject)</p>
<p>private</p>
<p></font><font face="宋體" lang="ZH-CN">…</font><font face="Arial"> </p>
<p>FRoot: TComponent;</p>
<p>FAncestor: TPersistent;</p>
<p>FIgnoreChildren: Boolean;</p>
<p>public</p>
<p></font><font face="宋體" lang="ZH-CN">…</p>
<p></font><font face="Arial">property Root: TComponent read FRoot write FRoot;</p>
<p>property Ancestor: TPersistent read FAncestor write FAncestor;</p>
<p>property IgnoreChildren: Boolean read FIgnoreChildren write FIgnoreChildren;</p>
<p>end;</p>
<p></font> <font face="宋體" lang="ZH-CN"></p>
<p>  它們在讀寫控制上都是直接讀寫私有的數據域。</p>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品桃花视频在线观看| 亚洲精品国久久99热| 欧美日韩精品一区二区天天拍小说| 大桥未久av一区二区三区中文| 极品美女销魂一区二区三区免费 | 狠狠色综合播放一区二区| 免费在线观看一区| 老司机精品视频线观看86 | 日韩欧美国产一区在线观看| 欧美日本精品一区二区三区| 91.麻豆视频| 欧美成人一区二区三区在线观看| 日韩欧美中文字幕制服| 26uuu国产电影一区二区| 国产精品视频在线看| 国产精品麻豆欧美日韩ww| ...xxx性欧美| 亚洲综合男人的天堂| 日韩综合小视频| 国产一区二区三区国产| 91在线观看高清| 欧美日韩亚州综合| 精品国产乱码久久久久久图片| 亚洲国产精品麻豆| 国产露脸91国语对白| 成人免费三级在线| 99久久夜色精品国产网站| 91高清视频免费看| 日韩精品一区二区三区视频在线观看| 欧美变态tickle挠乳网站| 欧美激情一区二区三区不卡 | 一区二区三区四区亚洲| 国产综合色视频| 91香蕉视频mp4| 国产成人精品www牛牛影视| 国产麻豆精品在线| 色欲综合视频天天天| 日韩色视频在线观看| 国产精品对白交换视频| 老汉av免费一区二区三区| 久久97超碰国产精品超碰| 成人免费高清在线| 国产精品免费视频网站| 成人黄页毛片网站| 最新久久zyz资源站| 91在线精品一区二区| 玉足女爽爽91| 91麻豆精品国产| 精品一二三四区| 99久久精品99国产精品| 亚洲欧洲精品天堂一级 | 国产亚洲欧美一区在线观看| 国产一本一道久久香蕉| 中文字幕 久热精品 视频在线 | 色老汉av一区二区三区| 亚洲一区二区三区爽爽爽爽爽| 欧美欧美欧美欧美| 久久超碰97中文字幕| 国产精品久久久久久久久免费丝袜| 99麻豆久久久国产精品免费| 亚洲一区二区3| 欧美va亚洲va| 91网站视频在线观看| 天堂资源在线中文精品| 337p日本欧洲亚洲大胆色噜噜| 成人动漫精品一区二区| 亚洲成人一区二区在线观看| 精品国产91洋老外米糕| 亚洲成人综合在线| 777午夜精品视频在线播放| 国内精品久久久久影院色| 亚洲欧美在线视频观看| 欧美一区二区国产| 99国产精品视频免费观看| 日韩中文欧美在线| 国产精品久久久久一区| 欧美精品vⅰdeose4hd| 丁香婷婷综合色啪| 天天综合色天天| |精品福利一区二区三区| 欧美mv日韩mv国产网站app| 91视频免费看| 国产精品123| 美女视频一区二区| 亚洲永久精品国产| 2017欧美狠狠色| 欧美精品久久99| 一本久久a久久免费精品不卡| 美女视频一区在线观看| 亚洲国产裸拍裸体视频在线观看乱了 | 亚洲成人av免费| 国产人成一区二区三区影院| 欧美伊人久久久久久久久影院| 国产精品99久| 精品在线免费视频| 视频在线观看一区二区三区| 亚洲精品一二三| 国产精品久久久久影院亚瑟| 2023国产精品| 欧美一级免费观看| 欧美日韩国产经典色站一区二区三区| www.日韩大片| 成人av先锋影音| 国产成人综合在线观看| 韩国理伦片一区二区三区在线播放| 亚洲成在人线免费| 亚洲一区二区三区中文字幕| 亚洲视频一区二区免费在线观看| 国产视频一区二区在线观看| 久久一二三国产| 久久婷婷色综合| 精品国产精品网麻豆系列| 在线观看一区二区视频| 不卡av在线免费观看| 国产成人久久精品77777最新版本| 美女在线视频一区| 久久精品久久精品| 久久精品国内一区二区三区| 麻豆精品久久精品色综合| 青草国产精品久久久久久| 日产国产欧美视频一区精品| 日本欧美一区二区在线观看| 日本不卡中文字幕| 麻豆国产91在线播放| 麻豆精品视频在线观看视频| 九九热在线视频观看这里只有精品| 奇米一区二区三区av| 免费日本视频一区| 国产在线观看一区二区 | 亚洲免费大片在线观看| 日韩理论在线观看| 亚洲国产综合视频在线观看| 亚洲国产精品一区二区久久 | 国产精品美女久久久久久2018| 中文字幕不卡的av| 综合在线观看色| 麻豆91免费观看| 国产精品影视在线| 99亚偷拍自图区亚洲| 欧美性生交片4| 日韩精品一区二区在线观看| 国产无人区一区二区三区| 亚洲欧洲精品天堂一级| 午夜久久久影院| 国产乱码精品一区二区三区av | 亚洲成人综合在线| 六月婷婷色综合| www.视频一区| 欧美一级国产精品| 国产精品久久久久久久久久免费看| 亚洲一区二区在线免费观看视频| 美女mm1313爽爽久久久蜜臀| 成人午夜又粗又硬又大| 精品视频在线免费观看| 久久综合网色—综合色88| 亚洲美女淫视频| 国产在线视视频有精品| 一本到不卡免费一区二区| 欧美成人精精品一区二区频| 国产精品久久久久久久久搜平片| 日韩在线卡一卡二| 成人av资源网站| 欧美一区二区三区影视| 亚洲欧洲成人自拍| 美女国产一区二区| 欧美在线小视频| 亚洲国产精品高清| 日韩和欧美一区二区| av在线不卡电影| 亚洲最新视频在线观看| 欧美裸体一区二区三区| 国产偷v国产偷v亚洲高清| 夜夜嗨av一区二区三区中文字幕| 久久99国产乱子伦精品免费| 91麻豆.com| 国产女人18毛片水真多成人如厕| 日韩高清在线电影| 色综合激情五月| 国产精品乱子久久久久| 久久99国产精品久久| 在线播放91灌醉迷j高跟美女| 一区视频在线播放| 在线视频你懂得一区| 国产日产精品1区| 久久激情综合网| 91精品国产全国免费观看| 亚洲精品大片www| 99国产欧美久久久精品| 国产精品免费人成网站| 国产麻豆9l精品三级站| 精品免费视频.| 日韩成人精品在线| 欧美精品久久99久久在免费线 | 欧美mv和日韩mv国产网站| 天天免费综合色| 91黄视频在线观看| 中文字幕中文在线不卡住| 国产成人h网站| 久久美女高清视频| 国产一区二区三区四|