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

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

?? 051.htm

?? delphi教程
?? HTM
?? 第 1 頁 / 共 5 頁
字號:
<p>  </font><font face="Arial">SetSize</font><font face="宋體" lang="ZH-CN">方法消除內存流中包含的數據,并將內存流中內存池的大小設為</font><fontface="Arial">Size</font><font face="宋體" lang="ZH-CN">字節。如果</font><fontface="Arial">Size</font><font face="宋體" lang="ZH-CN">為零,是</font><fontface="Arial">SetSize</font><font face="宋體" lang="ZH-CN">方法將釋放已有的內存池,并將</font><fontface="Arial">Memory</font><font face="宋體" lang="ZH-CN">屬性置為</font><fontface="Arial">nil</font><font face="宋體" lang="ZH-CN">;否則,</font><fontface="Arial">SetSize</font><font face="宋體" lang="ZH-CN">方法將內存池大小調整為</font><fontface="Arial">Size</font><font face="宋體" lang="ZH-CN">。</font><font face="Arial"></p><p>4. Clear</font><font face="宋體" lang="ZH-CN">方法</p><p>  聲明:</font><font face="Arial">procedure Clear; </p><p>Clear</font><font face="宋體" lang="ZH-CN">方法釋放內存中的內存池,并將</font><fontface="Arial">Memory</font><font face="宋體" lang="ZH-CN">屬性置為</font><fontface="Arial">nil</font><font face="宋體" lang="ZH-CN">。在調用</font><fontface="Arial">Clear</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><font face="Arial">0</font><fontface="宋體" lang="ZH-CN">。</p><p>  </font><font face="Arial">5. LoadFromStream</font><font face="宋體"lang="ZH-CN">方法</p><p>  聲明:</font><font face="Arial">procedure LoadFromStream(Stream: TStream); </p><p>LoadFromStream</font><font face="宋體" lang="ZH-CN">方法將</font><fontface="Arial">Stream</font><font face="宋體" lang="ZH-CN">指定的流中的全部內容復制到</font><fontface="Arial">MemoryStream</font><font face="宋體" lang="ZH-CN">中,復制過程將取代已有內容,使</font><fontface="Arial">MemoryStream</font><font face="宋體" lang="ZH-CN">成為</font><fontface="Arial">Stream</font><font face="宋體" lang="ZH-CN">的一份拷貝。</p><p>  </font><font face="Arial">6. LoadFromFile</font><font face="宋體" lang="ZH-CN">方法</p><p>  聲明:</font><font face="Arial">procedure LoadFromFile(count FileName:String); </p><p>LoadFromFile</font><font face="宋體" lang="ZH-CN">方法將</font><font face="Arial">FileName</font><fontface="宋體" lang="ZH-CN">指定文件的所有內容復制到</font><font face="Arial">MemoryStream</font><fontface="宋體" lang="ZH-CN">中,并取代已有內容。調用</font><font face="Arial">LoadFromFile</font><fontface="宋體" lang="ZH-CN">方法后,</font><font face="Arial">MemoryStream</font><fontface="宋體" lang="ZH-CN">將成為文件內容在內存中的完整拷貝。</p><p> </font><font face="Arial"></p><p>20.1.5.2 TMemoryStream</font><font face="宋體" lang="ZH-CN">對象的實現原理</p><p> </p><p>  </font><font face="Arial">TMemoryStream</font><font face="宋體" lang="ZH-CN">從</font><fontface="Arial">TCustomMemoryStream</font><font face="宋體" lang="ZH-CN">對象直接繼承,因此可以享用</font><fontface="Arial">TCustomMemoryStream</font><font face="宋體" lang="ZH-CN">的屬性和方法。前面講過,</font><fontface="Arial">TCustomMemoryStream</font><font face="宋體" lang="ZH-CN">是用于內存中數據操作的抽象對象,它為</font><fontface="Arial">MemoryStream</font><font face="宋體" lang="ZH-CN">對象的實現提供了框架,框架中的內容還要由具體</font><fontface="Arial">MemoryStream</font><font face="宋體" lang="ZH-CN">對象去填充。</font><fontface="Arial">TMemoryStream</font><font face="宋體" lang="ZH-CN">對象就是按動態內存管理的需要填充框架中的具體內容。下面介紹</font><fontface="Arial">TMemoryStream</font><font face="宋體" lang="ZH-CN">對象的實現。</p><p>  </font><font face="Arial">1. TMemoryStream</font><font face="宋體" lang="ZH-CN">屬性的實現</p><p>  </font><font face="Arial">TMemoryStream</font><font face="宋體" lang="ZH-CN">在其</font><fontface="Arial">protected</font><font face="宋體" lang="ZH-CN">部分增加了一個</font><fontface="Arial">Capacity</font><font face="宋體" lang="ZH-CN">屬性,該屬性決定了</font><fontface="Arial">MemoryStream</font><font face="宋體" lang="ZH-CN">所占動態內存的大小。</font><fontface="Arial">TMemoryStream</font><font face="宋體" lang="ZH-CN">首先在</font><fontface="Arial">private</font><font face="宋體" lang="ZH-CN">部分聲明了</font><fontface="Arial">FCapacity</font><font face="宋體" lang="ZH-CN">變量作為存儲</font><fontface="Arial">Capacity</font><font face="宋體" lang="ZH-CN">屬性值的數據域,然后在</font><fontface="Arial">protected</font><font face="宋體" lang="ZH-CN">部分聲明了該屬性。在屬性聲明的讀控制部分簡單讀取</font><fontface="Arial">FCapacity</font><font face="宋體" lang="ZH-CN">的值,在寫控制處調用了方法</font><fontface="Arial">SetCapacity</font><font face="宋體" lang="ZH-CN">。該方法除了給</font><fontface="Arial">FCapacity</font><font face="宋體" lang="ZH-CN">賦值外還執行了修改</font><fontface="Arial">Capacity</font><font face="宋體" lang="ZH-CN">屬性所必需操作如狀態改變等。</p><p>  下面是屬性的實現:</p><p> </p><p></font><font face="Arial">TMemoryStream = class(TCustomMemoryStream)</p><p>private</p><p>FCapacity: Longint;</p><p>procedure SetCapacity(NewCapacity: Longint);</p><p>protected</p><p></font><font face="宋體" lang="ZH-CN">…</p><p></font><font face="Arial">property Capacity: Longint read FCapacity write SetCapacity;</p><p>public</p><p></font><font face="宋體" lang="ZH-CN">…</p><p></font><font face="Arial">end;</p><p></font> <font face="宋體" lang="ZH-CN"></p><p>  寫控制方法</font><font face="Arial">SetCapacity</font><font face="宋體"lang="ZH-CN">的實現是這樣的:</p><p> </p><p></font><font face="Arial">procedure TMemoryStream.SetCapacity(NewCapacity: Longint);</p><p>begin</p><p>SetPointer(Realloc(NewCapacity), FSize);</p><p>FCapacity := NewCapacity;</p><p>end;</p><p></font> <font face="宋體" lang="ZH-CN"></p><p>  在</font><font face="Arial">SetCapacity </font><font face="宋體" lang="ZH-CN">方法先是調用</font><fontface="Arial">Realloc</font><font face="宋體" lang="ZH-CN">重新分配內存,然后用</font><fontface="Arial">NewCapacity</font><font face="宋體" lang="ZH-CN">的值給</font><fontface="Arial">FCapacity</font><font face="宋體" lang="ZH-CN">賦值。</font><fontface="Arial">Realloc</font><font face="宋體" lang="ZH-CN">方法進行某些對象狀態的改變。</p><p>  </font><font face="Arial">2. TMemoryStream</font><font face="宋體" lang="ZH-CN">對象方法的實現</p><p>  ⑴</font><font face="Arial"> Realloc</font><font face="宋體" lang="ZH-CN">方法</p><p>  </font><font face="Arial">Realloc</font><font face="宋體" lang="ZH-CN">方法是</font><fontface="Arial">TMemoryStream</font><font face="宋體" lang="ZH-CN">動態內存分配的核心,它的</font><fontface="Arial">SetSize</font><font face="宋體" lang="ZH-CN">、</font><font face="Arial">SetCapacity</font><fontface="宋體" lang="ZH-CN">等方法最終都是調用</font><font face="Arial">Realloc</font><fontface="宋體" lang="ZH-CN">進行內存的分配和初始化工作的。它的實現如下:</p><p> </p><p></font><font face="Arial">const</p><p>MemoryDelta = $2000; </p><p></font> <font face="Arial"></p><p>function TMemoryStream.Realloc(var NewCapacity: Longint): Pointer;</p><p>begin</p><p>if NewCapacity &gt; 0 then</p><p>NewCapacity := (NewCapacity + (MemoryDelta - 1)) and not (MemoryDelta - 1);</p><p>Result := Memory;</p><p>if NewCapacity &lt;&gt; FCapacity then</p><p>begin</font><font face="宋體" lang="ZH-CN"></p><p></font><font face="Arial">if NewCapacity = 0 then</font><font face="宋體"lang="ZH-CN"></p><p></font><font face="Arial">begin</p><p>GlobalFreePtr(Memory);</p><p>Result := nil;</p><p>end else</p><p>begin</p><p>if Capacity = 0 then</p><p>Result := GlobalAllocPtr(HeapAllocFlags, NewCapacity)</p><p>else</p><p>Result := GlobalReallocPtr(Memory, NewCapacity, HeapAllocFlags);</p><p>if Result = nil then raise EStreamError.CreateRes(SMemoryStreamError);</p><p>end;</p><p>end;</p><p>end;</p><p></font> <font face="宋體" lang="ZH-CN"></p><p>  </font><font face="Arial">Realloc</font><font face="宋體" lang="ZH-CN">方法是以</font><fontface="Arial">8K</font><font face="宋體" lang="ZH-CN">為單位分配動態內存的,方法中的第一句</font><fontface="Arial">if</font><font face="宋體" lang="ZH-CN">語句就是執行該操作。如果傳入的</font><fontface="Arial">NewCapacity</font><font face="宋體" lang="ZH-CN">參數值為</font><fontface="Arial">0</font><font face="宋體" lang="ZH-CN">,則釋放流中的內存。</font><fontface="Arial">Realloc</font><font face="宋體" lang="ZH-CN">方法用</font><fontface="Arial">GLobal FreePtr</font><font face="宋體" lang="ZH-CN">函數釋放內存,用</font><fontface="Arial">GlobalAllocPtr</font><font face="宋體" lang="ZH-CN">分配內存,用</font><fontface="Arial">GlobalReallocPtr</font><font face="宋體" lang="ZH-CN">進行內存的重分配。如果原來的</font><fontface="Arial">Capacity</font><font face="宋體" lang="ZH-CN">屬性值為</font><fontface="Arial">0</font><font face="宋體" lang="ZH-CN">,則調用</font><fontface="Arial">Globa|AllocPtr</font><font face="宋體" lang="ZH-CN">否則調用</font><fontface="Arial">GlobalReallocPtr</font><font face="宋體" lang="ZH-CN">。最后如果</font><fontface="Arial">Result</font><font face="宋體" lang="ZH-CN">為</font><font face="Arial">nil</font><fontface="宋體" lang="ZH-CN">則觸發內存流錯的異常事件,否則返回指向分配的內存的指針。</p><p>  ⑵</font><font face="Arial"> Write</font><font face="宋體" lang="ZH-CN">方法</p><p>  </font><font face="Arial">Write</font><font face="宋體" lang="ZH-CN">方法從內存流內部緩沖池的當前位置開始寫入二進制數據。其實現如下:</p><p> </p><p></font><font face="Arial">function TMemoryStream.Write(const Buffer; Count: Longint):Longint;</p><p>var</p><p>Pos: Longint;</p><p>begin</p><p>if (FPosition &gt;= 0) and (Count &gt;= 0) then</p><p>begin</p><p>Pos := FPosition + Count;</p><p>if Pos &gt; 0 then</p><p>begin</p><p>if Pos &gt; FSize then</p><p>begin</p><p>if Pos &gt; FCapacity then</p><p>SetCapacity(Pos);</p><p>FSize := Pos;</p><p>end;</p><p>System.Move(Buffer, Pointer(Longint(FMemory) + FPosition)^, Count);</p><p>FPosition := Pos;</p><p>Result := Count;</p><p>Exit;</p><p>end;</p><p>end;</p><p>Result := 0;</p><p>end;</p><p></font> <font face="宋體" lang="ZH-CN"></p><p>  </font><font face="Arial">Buffer</font><font face="宋體" lang="ZH-CN">中存儲要寫入流的二進制數據,如果要寫入的數據的字節超出了流的內存池的大小,則調用</font><fontface="Arial">SetCapacity</font><font face="宋體" lang="ZH-CN">方法再分配內存,然后用內存復制函數將</font><fontface="Arial">Buffer</font><font face="宋體" lang="ZH-CN">中的數據復制到</font><fontface="Arial">FMemory</font><font face="宋體" lang="ZH-CN">中。接著移動位置指針,并返回寫入數據的字節數。分析這段程序可以知道,</font><fontface="Arial">FCapacity</font><font face="宋體" lang="ZH-CN">的值和</font><font

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品免费国产一区二区三区四区| 色999日韩国产欧美一区二区| 亚洲精品日产精品乱码不卡| 精品精品欲导航| 在线观看日韩精品| 成熟亚洲日本毛茸茸凸凹| 蜜臀av性久久久久蜜臀aⅴ流畅 | 欧美r级在线观看| 欧美裸体一区二区三区| 色综合色综合色综合 | 欧美精品一级二级| 欧美色窝79yyyycom| 91麻豆.com| 91丨porny丨首页| www.亚洲精品| 91影视在线播放| 色呦呦日韩精品| 色88888久久久久久影院野外| 不卡视频免费播放| 大尺度一区二区| 9i在线看片成人免费| 欧美专区在线观看一区| 欧美日韩一级二级三级| 6080国产精品一区二区| 一区二区三区高清在线| 一区二区免费在线| 久久电影网电视剧免费观看| 国产精品一区2区| 色综合天天综合网天天看片| 欧美无砖砖区免费| 日韩美女在线视频| 亚洲丝袜制服诱惑| 亚洲成av人片在www色猫咪| 人人爽香蕉精品| 成人av高清在线| 51久久夜色精品国产麻豆| 久久一夜天堂av一区二区三区| 国产女主播视频一区二区| 亚洲视频精选在线| 老司机精品视频导航| 99免费精品在线观看| 欧美日韩国产经典色站一区二区三区| 91精品国产入口| 亚洲嫩草精品久久| 极品少妇xxxx偷拍精品少妇| 91在线免费看| 国产精品你懂的在线欣赏| 日韩激情在线观看| 99国产精品99久久久久久| 日韩欧美一二三| 亚洲精品国产精华液| 国产乱人伦精品一区二区在线观看| 色综合久久天天综合网| 久久久久久久久蜜桃| 日本不卡一二三区黄网| 91久久香蕉国产日韩欧美9色| 久久久欧美精品sm网站| 蜜桃视频在线观看一区二区| 欧美调教femdomvk| 亚洲黄色免费网站| 在线亚洲免费视频| 国产电影一区二区三区| 精品嫩草影院久久| 午夜视频在线观看一区二区| 91影院在线免费观看| 久久只精品国产| 久久成人免费网站| 欧美一区永久视频免费观看| 亚洲成a人在线观看| 欧美亚洲一区二区三区四区| 一区二区久久久| 欧美三级日韩三级| 日韩精品欧美成人高清一区二区| 欧美日韩免费视频| 免费av网站大全久久| 久久―日本道色综合久久 | 亚洲欧美经典视频| 欧美日韩国产免费一区二区| 美国十次了思思久久精品导航| 日韩一级视频免费观看在线| 国产精品66部| 一片黄亚洲嫩模| 日韩欧美中文一区| 国产成人午夜高潮毛片| 亚洲欧美日韩中文字幕一区二区三区| 欧美久久一二区| 福利一区二区在线观看| 午夜亚洲国产au精品一区二区| 日韩三级免费观看| 色综合久久天天| 国产aⅴ综合色| 亚洲国产一区二区在线播放| 久久综合久久综合九色| 欧日韩精品视频| 懂色av一区二区在线播放| 亚洲高清视频中文字幕| 国产调教视频一区| 欧美高清精品3d| 99麻豆久久久国产精品免费| 国产综合色视频| 亚洲一级电影视频| 亚洲欧美自拍偷拍| 久久品道一品道久久精品| 欧美日韩免费一区二区三区| 成人app在线| 国产美女在线精品| 免费不卡在线视频| 天堂影院一区二区| 亚洲成在人线在线播放| 一区在线观看免费| 国产日韩欧美高清在线| 久久婷婷久久一区二区三区| 337p亚洲精品色噜噜狠狠| 在线观看国产日韩| 欧美综合一区二区三区| 91黄视频在线观看| 在线观看精品一区| 欧美日韩国产一区二区三区地区| 色噜噜久久综合| 91免费看`日韩一区二区| av成人动漫在线观看| 色诱视频网站一区| 欧美性xxxxx极品少妇| 欧美私模裸体表演在线观看| 欧美日韩美女一区二区| 欧美一级欧美一级在线播放| 日韩亚洲国产中文字幕欧美| 欧美成人一区二区| 久久伊人中文字幕| 国产精品理论片| 亚洲黄色录像片| 奇米一区二区三区| 国产精品一区三区| 色综合久久66| 精品国产乱码久久久久久浪潮 | 国产精品婷婷午夜在线观看| 国产精品少妇自拍| 日韩在线一区二区| 国产成人精品aa毛片| 91免费在线视频观看| 欧美一区中文字幕| 国产精品午夜在线观看| 一区二区三区欧美亚洲| 美腿丝袜一区二区三区| av亚洲精华国产精华精| 欧美日韩国产精品自在自线| 中文字幕av一区二区三区免费看 | 欧美精品一区二区精品网| 亚洲老司机在线| 国产精品一区二区免费不卡| 国产精品网站在线观看| 日韩不卡手机在线v区| av资源网一区| 国产欧美一区二区在线| 日韩精品一级中文字幕精品视频免费观看| 91女厕偷拍女厕偷拍高清| 欧美嫩在线观看| 亚洲欧美另类小说| 久久99在线观看| 91精品国产高清一区二区三区| 亚洲欧美日韩中文字幕一区二区三区| 久久精品理论片| 欧美一区二区三区播放老司机| 亚洲另类春色国产| 色噜噜夜夜夜综合网| 综合网在线视频| 成人av在线资源网站| 精品99一区二区三区| 日本网站在线观看一区二区三区 | 欧美日韩性生活| 亚洲午夜三级在线| 欧美日韩在线三级| 亚洲成年人影院| 欧美一区二区三区在线观看视频| 亚洲va欧美va人人爽| 日韩一区二区三| 国产老妇另类xxxxx| 中文字幕第一区| 色综合夜色一区| 蜜臀av一级做a爰片久久| 欧美电影免费观看高清完整版在| 国产美女精品在线| 国产精品网友自拍| 欧美日韩免费高清一区色橹橹| 美女爽到高潮91| 久久嫩草精品久久久精品| 成人福利视频在线看| 亚洲精品久久久蜜桃| 日韩一级完整毛片| 97aⅴ精品视频一二三区| 亚洲18影院在线观看| 国产日韩欧美一区二区三区乱码| 99久久婷婷国产综合精品电影| 视频在线观看国产精品| 亚洲国产成人一区二区三区| 91美女在线视频| 久久av老司机精品网站导航| 亚洲美女视频在线| 久久综合av免费| 欧美色涩在线第一页|