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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 053.htm

?? delphi編程
?? HTM
?? 第 1 頁 / 共 4 頁
字號:
<HTML><HEAD><meta http-equiv="Content-Type" content="text/html; charset=GB2312"><TITLE>-->DELPHI基礎(chǔ)教程-->第二十章 開發(fā)Delphi對象式數(shù)據(jù)管理功能(三)</TITLE>
<META NAME="keywords" CONTENT=" DELPHI基礎(chǔ)教程 第二十章 開發(fā)Delphi對象式數(shù)據(jù)管理功能(三)">
<META NAME="description" CONTENT=" - DELPHI基礎(chǔ)教程 - 第二十章 開發(fā)Delphi對象式數(shù)據(jù)管理功能(三)">

<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="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" bgcolor="#F5F8F8" width="84%"><center><B><FONT style="FONT-SIZE: 16.5pt" COLOR="#FF6666" FACE="楷體_GB2312">第二十章 開發(fā)Delphi對象式數(shù)據(jù)管理功能(三)</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">方法在讀和寫部件及其擁有的部件前先設(shè)置</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">屬性用于往繼承下來的窗體中寫部件,因為當(dāng)寫部件時,</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">,就表示沒有相應(yīng)的繼承的部件,</font><font
face="Arial">Writer</font><font face="宋體" lang="ZH-CN">對象應(yīng)當(dāng)將部件完全寫入流。</font><font
face="Arial">Ancestor</font><font face="宋體" lang="ZH-CN">一般為</font><font
face="Arial">nil</font><font face="宋體" lang="ZH-CN">,只有當(dāng)調(diào)用</font><font
face="Arial">WriteDescendant</font><font face="宋體" lang="ZH-CN">和</font><font
face="Arial">WriteDescendantRes</font><font face="宋體" lang="ZH-CN">時,才給賦值。當(dāng)編寫和覆蓋</font><font
face="Arial">DefineProperties</font><font face="宋體" lang="ZH-CN">時,必須設(shè)置</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">方法創(chuàng)建一個新的</font><font face="Arial">Filer</font><font
face="宋體" lang="ZH-CN">對象,建立它和流</font><font face="Arial">Stream</font><font
face="宋體" lang="ZH-CN">的聯(lián)系;并且給它分配一個緩沖區(qū)</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">對象將作為屬性存儲的數(shù)據(jù)。</font><font
face="Arial">Name</font><font face="宋體" lang="ZH-CN">參數(shù)描述接受的屬性名,該屬性不在</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">參數(shù)指定在存取對象時讀和寫所需數(shù)據(jù)的方法。</font><font
face="Arial">HasData</font><font face="宋體" lang="ZH-CN">參數(shù)在運行時決定了屬性是否有數(shù)據(jù)要存儲。</p>
<p>  只有當(dāng)對象有數(shù)據(jù)要存儲時,才在該對象的</font><font
face="Arial">DefineProperties</font><font face="宋體" lang="ZH-CN">中調(diào)用</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">對象作為它的參數(shù),調(diào)用的就是該</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">方法。當(dāng)定義屬性時,</font><font
face="Arial">Writer</font><font face="宋體" lang="ZH-CN">對象應(yīng)當(dāng)引用</font><font
face="Arial">Ancestor</font><font face="宋體" lang="ZH-CN">屬性,如果該屬性非空,</font><font
face="Arial">Writer</font><font face="宋體" lang="ZH-CN">對象應(yīng)當(dāng)只寫入與從</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">對象作為屬性存儲的二進(jìn)制數(shù)據(jù)。</font><font
face="Arial">Name</font><font face="宋體" lang="ZH-CN">參數(shù)描述屬性名。</font><font
face="Arial">ReadData</font><font face="宋體" lang="ZH-CN">和</font><font face="Arial">WriteData</font><font
face="宋體" lang="ZH-CN">參數(shù)描述所存儲的對象中讀寫所需數(shù)據(jù)的方法。</font><font
face="Arial">HasData</font><font face="宋體" lang="ZH-CN">參數(shù)在運行時決定屬性是否有數(shù)據(jù)要存。</p>
<p>  </font><font face="Arial">DefineBinaryProperty</font><font face="宋體"
lang="ZH-CN">和</font><font face="Arial">DefineProperty</font><font face="宋體"
lang="ZH-CN">方法的不同之處在于,二進(jìn)制型的屬性直接用</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">傳入的方法,直接將對象數(shù)據(jù)寫入流或從流讀出。</p>
<p>  </font><font face="Arial">DefineBinaryProperty</font><font face="宋體"
lang="ZH-CN">屬性用得較少。只有標(biāo)準(zhǔn)的</font><font face="Arial">VCL</font><font
face="宋體" lang="ZH-CN">對象定義了象圖形、圖像之類的二進(jìn)制屬性的部件中才用它。</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">對象的緩沖區(qū)與相聯(lián)的</font><font
face="Arial">Stream</font><font face="宋體" lang="ZH-CN">對象同步。對</font><font
face="Arial">Reader</font><font face="宋體" lang="ZH-CN">對象來說,是通過重新分配緩沖區(qū);對于</font><font
face="Arial">Writer</font><font face="宋體" lang="ZH-CN">對象是通過寫入當(dāng)前緩沖區(qū)。</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">都覆蓋了它,提供了具體實現(xiàn)。</p>
<p> </font><font face="Arial"></p>
<p>20.2.1.2 TFiler</font><font face="宋體" lang="ZH-CN">對象的實現(xiàn)原理</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">對象的基礎(chǔ)類,它定義的大多數(shù)方法都是抽象類型的,沒有具體實現(xiàn)它,這些方法要在</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">對象屬性的實現(xiàn)</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">部分定義存儲屬性值的數(shù)據(jù)域,然后在</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>  它們在讀寫控制上都是直接讀寫私有的數(shù)據(jù)域。</p>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久66热re国产| 欧美乱熟臀69xxxxxx| 91国偷自产一区二区三区成为亚洲经典 | 激情综合亚洲精品| 99在线视频精品| 欧美精品一区二区三区久久久| 亚洲一区中文在线| 99亚偷拍自图区亚洲| 精品国产伦理网| 亚州成人在线电影| 色哟哟日韩精品| 中文字幕乱码日本亚洲一区二区 | 懂色av一区二区三区免费观看| 欧美精品18+| 一区二区三区不卡视频在线观看| 成人午夜电影久久影院| 精品国内二区三区| 日韩高清在线观看| 欧美专区日韩专区| 亚洲摸摸操操av| 波多野结衣视频一区| 久久久九九九九| 国产精品一级黄| xnxx国产精品| 国产一区福利在线| 精品国产成人在线影院| 捆绑调教一区二区三区| 91精品免费观看| 美腿丝袜亚洲综合| 欧美一级片在线看| 麻豆国产欧美一区二区三区| 91精品福利在线一区二区三区| 亚洲成人免费影院| 欧美日本国产视频| 美日韩一区二区三区| 日韩免费在线观看| 激情综合色综合久久| 精品国产亚洲在线| 国产黄色精品网站| 国产清纯白嫩初高生在线观看91 | 久久99久久久久| 久久人人97超碰com| 国产乱码字幕精品高清av | 午夜精品久久久| 7777女厕盗摄久久久| 男女性色大片免费观看一区二区| 91精品国产综合久久久久| 麻豆精品国产91久久久久久| 久久丝袜美腿综合| 成人免费高清在线| 一区二区三区小说| 日韩一区二区三区精品视频| 黄色精品一二区| 国产精品久久久久桃色tv| 在线看日本不卡| 久久 天天综合| 亚洲欧洲www| 欧美精品九九99久久| 久久精品久久精品| 国产片一区二区| 欧美视频在线观看一区二区| 免播放器亚洲一区| 国产精品久久久久影院| 欧美日韩五月天| 高清久久久久久| 日韩激情av在线| 国产日韩欧美激情| 欧美性大战久久久久久久| 精品一区二区三区影院在线午夜 | 久久成人免费电影| 自拍偷拍亚洲综合| 亚洲精品一区二区三区99| 99久久综合精品| 国内外成人在线| 亚洲午夜精品17c| 精品国产一二三| 欧美日韩视频在线第一区| 国产成人三级在线观看| 天天综合网天天综合色| 国产欧美一区二区精品性色超碰| 欧美猛男男办公室激情| 成人av免费在线观看| 韩国欧美一区二区| 亚洲国产日韩a在线播放| 久久午夜色播影院免费高清 | 2020国产精品自拍| 欧美日韩亚洲国产综合| 成人97人人超碰人人99| 国产在线一区观看| 性久久久久久久久| 亚洲蜜臀av乱码久久精品蜜桃| 久久精品亚洲精品国产欧美kt∨ | 日韩在线观看一区二区| 依依成人精品视频| 日韩精品一区二区三区中文不卡| 午夜欧美大尺度福利影院在线看| 婷婷国产v国产偷v亚洲高清| 麻豆91精品视频| 成人午夜精品一区二区三区| 欧美综合视频在线观看| 51久久夜色精品国产麻豆| 精品福利在线导航| 亚洲另类在线视频| 美女视频黄免费的久久| 国产九色sp调教91| 在线免费观看日本一区| 欧美第一区第二区| 中文字幕亚洲视频| 丝袜美腿一区二区三区| 国产成人免费视频网站| 91精品1区2区| 26uuu色噜噜精品一区二区| 中文字幕中文字幕一区二区| 一区二区免费看| 久久91精品国产91久久小草 | 麻豆91在线观看| 99久久综合国产精品| 欧美精品丝袜久久久中文字幕| 久久女同互慰一区二区三区| 亚洲欧洲一区二区三区| 日本在线不卡视频一二三区| 成人av在线一区二区| 欧美一级高清片在线观看| 国产精品美女久久久久久2018| 天天影视网天天综合色在线播放| 成人短视频下载| 欧美一级片在线看| 亚洲精品久久久蜜桃| 国产一区二区三区蝌蚪| 欧美三级视频在线观看| 国产人成亚洲第一网站在线播放 | 午夜精品在线看| www.色综合.com| 久久综合久久鬼色| 亚洲午夜私人影院| 97国产一区二区| 国产日韩欧美麻豆| 久久国产欧美日韩精品| 欧美一a一片一级一片| 中文字幕精品一区| 国内精品免费**视频| 7799精品视频| 亚洲国产你懂的| 91国产免费看| 亚洲精品ww久久久久久p站| 成人性视频网站| 久久众筹精品私拍模特| 日韩国产成人精品| 欧美日韩五月天| 亚洲风情在线资源站| 91国偷自产一区二区三区成为亚洲经典| 中文字幕高清一区| 国产在线一区二区综合免费视频| 7777精品伊人久久久大香线蕉的 | 美女一区二区三区| 欧美日产国产精品| 亚洲成人av电影在线| 欧美亚洲国产一区在线观看网站| 国产精品久久久久影院亚瑟| 成人黄色777网| 欧美激情综合五月色丁香小说| 国产精品1区2区| 久久久国际精品| 国产精品伊人色| 国产亚洲欧美在线| 国产不卡免费视频| 国产日韩精品视频一区| 国产成人精品免费网站| 国产精品久99| 91天堂素人约啪| 伊人婷婷欧美激情| 欧美色图天堂网| 午夜a成v人精品| 日韩一区二区在线观看| 精品一区免费av| 国产嫩草影院久久久久| 岛国精品一区二区| 国产精品成人免费在线| 91久久线看在观草草青青| 亚洲国产另类av| 日韩一卡二卡三卡| 国产中文字幕精品| 国产精品黄色在线观看| 91高清视频免费看| 蜜臀av性久久久久av蜜臀妖精| 精品成人a区在线观看| 丁香一区二区三区| 亚洲精品中文字幕在线观看| 欧美日本一道本在线视频| 精品亚洲国产成人av制服丝袜 | 国产精品乱码久久久久久| 91蜜桃网址入口| 亚洲超碰精品一区二区| 欧美电影免费观看高清完整版| 成人午夜电影小说| 午夜视频在线观看一区| 26uuu色噜噜精品一区二区| 99久久综合色| 麻豆久久久久久久| 中文字幕一区二区在线观看|