﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-射手的博客-随笔分类-Data types (数据类型) 学习</title><link>http://www.cnitblog.com/Archer/category/8226.html</link><description>学习Delphi,需要一个记录学习的博客,</description><language>zh-cn</language><lastBuildDate>Thu, 29 Sep 2011 16:37:12 GMT</lastBuildDate><pubDate>Thu, 29 Sep 2011 16:37:12 GMT</pubDate><ttl>60</ttl><item><title>基本的数据类型.简单类型</title><link>http://www.cnitblog.com/Archer/archive/2009/04/13/56306.html</link><dc:creator>Archer</dc:creator><author>Archer</author><pubDate>Mon, 13 Apr 2009 03:22:00 GMT</pubDate><guid>http://www.cnitblog.com/Archer/archive/2009/04/13/56306.html</guid><wfw:comment>http://www.cnitblog.com/Archer/comments/56306.html</wfw:comment><comments>http://www.cnitblog.com/Archer/archive/2009/04/13/56306.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/Archer/comments/commentRss/56306.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Archer/services/trackbacks/56306.html</trackback:ping><description><![CDATA[<span  style="color: rgb(0, 0, 102); font-family: verdana; "><div class="posttitle" style="padding-top: 5px; padding-right: 0px; padding-bottom: 5px; padding-left: 0px; "><br></div>&nbsp;<p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>类型在本质上是一种数据的名称<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>当声明一个变量时<span>,</span>必须指定它的类型<span>.</span>类型决定了它的取值范围和可以进行的操作<span>(</span>运算<span>).</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>About types</span><span>（关于类型）</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;<span style="background-color: yellow; ">类型可以分为:基本类型,一般类型.</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>基本类型<span>:</span>不管是基于任何<span>CPU</span>和操作系统<span>,</span>数据取值范围和形式是相同的<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>一般类型<span>:</span>取值返回和形式是平台相关<span>.</span>它们对特定平台提供了优化的性能和轻便性<span>.</span>因实现的不同可能发生改变<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;&nbsp;&nbsp;<span style="background-color: yellow; ">类型又可以细致的分为:简单类型,字符串类型,结构类型,指针类型,过程类型和变体类型.</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>标准函数<span>&nbsp;SizeOf</span>作用于所有变量和类型标志符，它返回一个整数，表明存储指定类型的数据所需要的内存数（字节）<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Simple types</span><span>（简单类型）</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Simple types: Overview</span><span>（概述）</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; background-color: yellow; "><span>简单类型包括有序类型和实数类型，它们定义有次序的数值集合<br></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;<span>Ordinal types</span><span>（有序类型）<br></span><span>&nbsp;<span style="background-color: yellow; ">有序类型包括整数、字符、布尔、枚举和子界类型</span></span><span>。有序类型定义一个有次序的数值集合<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>整数类型表示所有数字的一个子集</span>。<span style="background-color: yellow; ">一般（generic）整数类型是 Integer 和 Cardinal</span>，只要可能就尽量使用它们，因为它们对依赖的 CPU 和操作系统作了优化。</p><table cellspacing="0" cellpadding="0" width="584" border="1"><tbody><tr><td valign="top" width="195" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>类型</span></p></td><td valign="top" width="195" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>取值范围</span></p></td><td valign="top" width="195" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>格式</span></p></td></tr><tr><td valign="top" width="195" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Integer</span></p></td><td valign="top" width="195" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>-2147483648..2147483647</span></p></td><td valign="top" width="195" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>32&nbsp;</span><span>位有符号</span></p></td></tr><tr><td valign="top" width="195" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Cardinal</span></p></td><td valign="top" width="195" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>0..4294967295</span></p></td><td valign="top" width="195" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>32&nbsp;</span><span>位无符号</span></p></td></tr></tbody></table><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>基本整数类型包括<span>&nbsp;Shortint</span>、<span>Smallint</span>、<span>Longint</span>、<span>Int64</span>、<span>Byte</span>、<span>Word&nbsp;</span>和<span>&nbsp;Longword</span>。</span></p><table cellspacing="0" cellpadding="0" width="601" border="1"><tbody><tr><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>类型</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>取值范围</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>格式</span></p></td></tr><tr><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Shortint</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>-128..127</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>8&nbsp;</span><span>位有符号</span></p></td></tr><tr><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Smallint</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>-32768..32767</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>16&nbsp;</span><span>位有符号</span></p></td></tr><tr><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Longint</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>-2147483648..2147483647</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>32&nbsp;</span><span>位有符号</span></p></td></tr><tr><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Int64</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>-2^63..2^63-1</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>64&nbsp;</span><span>位有符号</span></p></td></tr><tr><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Byte</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>0..255</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>8&nbsp;</span><span>位无符号</span></p></td></tr><tr><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Word</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>0..65535</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>16&nbsp;</span><span>位无符号</span></p></td></tr><tr><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Longword</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>0..4294967295</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>32&nbsp;</span><span>位无符号</span></p></td></tr></tbody></table>&nbsp;注意：大多数使用整型参数的标准例程，会把 Int64 数值截取为 32 位。<br><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>&nbsp;</span><span style="background-color: yellow; ">当把整数类型的最后一个值增大或把第一个值减少时，结果将回到整数类型的开头或尾部。<br></span><br>Character types（字符类型）<br><br>基本字符类型分为: AnsiChar 和 WideChar。<br>AnsiChar 是 8 位字符集，它们将依照本地字符集的顺序排列，这可能是多字节的。<br>AnsiChar原先是根据 ANSI 字符集建立的，但现在扩展为可以指定本地字符集。<br>---------</p>WideChar 使用多于一个字节来表示每个字符。开头的 256 个 Unicode 字符对应于 ANSI 字符。&nbsp;<br>-------------------------------------------------------------------------------------------------------------<br>一般字符类型:Char.<br>一般字符类型是 Char，它相当于 AnsiChar。<br>&nbsp;内置函数Chr， 返回一个在AnsiChar或WideChar取值范围内任意一个整数的字符值。比如，Chr（65）返回字母 A。</span>
<img src ="http://www.cnitblog.com/Archer/aggbug/56306.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Archer/" target="_blank">Archer</a> 2009-04-13 11:22 <a href="http://www.cnitblog.com/Archer/archive/2009/04/13/56306.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>类的研究,数组属性.</title><link>http://www.cnitblog.com/Archer/archive/2009/03/18/55528.html</link><dc:creator>Archer</dc:creator><author>Archer</author><pubDate>Wed, 18 Mar 2009 13:54:00 GMT</pubDate><guid>http://www.cnitblog.com/Archer/archive/2009/03/18/55528.html</guid><wfw:comment>http://www.cnitblog.com/Archer/comments/55528.html</wfw:comment><comments>http://www.cnitblog.com/Archer/archive/2009/03/18/55528.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/Archer/comments/commentRss/55528.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Archer/services/trackbacks/55528.html</trackback:ping><description><![CDATA[
<p>&nbsp;</p>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: rgb(204, 204, 204); width: 98%; word-break: break-all; padding-top: 4px; background-color: rgb(238, 238, 238); "><span style="COLOR: #008080">1</span><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top"><span style="COLOR: #000000">property&nbsp;Objects[Index:&nbsp;Integer]:&nbsp;TObject&nbsp;read&nbsp;GetObject&nbsp;write&nbsp;SetObject;&nbsp;<br></span><span style="COLOR: #008080">2</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top">property&nbsp;Pixels[X,&nbsp;Y:&nbsp;Integer]:&nbsp;TColor&nbsp;read&nbsp;GetPixel&nbsp;write&nbsp;SetPixel;&nbsp;<br></span><span style="COLOR: #008080">3</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top">property&nbsp;Values[</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;Name:&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">]:&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;read&nbsp;GetValue&nbsp;write&nbsp;SetValue;&nbsp;</span></div>
<p><br>规则:<br><br>1.数组属性是被索引的属性. <span style="COLOR: red">不像数组只使用有序类型的索引，数组属性的索引能使用任何类型。</span> <br><span style="COLOR: #000000">Objects[Index:&nbsp;Integer]&nbsp;;Pixels[X, Y: Integer];Values[const Name: string];&nbsp;<br><span style="COLOR: #000000">Objects,<span style="COLOR: #000000">Objects,<span style="COLOR: #000000">Objects 是属性标识符,而后面则是属性属性的索引.</span></span></span></span></p>
2.数组属性的访问限定符(read,write)后跟的必须是方法,不能是字段.&nbsp;<br>读(read)方法后必须是一个函数,函数的参数数目,参数类型以及顺序必须和数组标志付的索引中列出的一致.返回值也必须与属性返回值相同.<br>function GetObject(Index: Integer): TObject; <br><br>写(write)方法必须是一个过程.过程与函数相似.只不过没有返回值.另外需在参数列表加一个和属性具有相同类型的值参（传值）或常量参数{用来储存数组的值}<br>procedure SetObject(Index: Integer; Value: TObject);<br><br>3.需要一个数组来存储数组的值.&nbsp; <br><br>过程,函数,数组,这些变量.平常都放在私有区域!<img src ="http://www.cnitblog.com/Archer/aggbug/55528.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Archer/" target="_blank">Archer</a> 2009-03-18 21:54 <a href="http://www.cnitblog.com/Archer/archive/2009/03/18/55528.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>类的默认属性.</title><link>http://www.cnitblog.com/Archer/archive/2009/03/18/55527.html</link><dc:creator>Archer</dc:creator><author>Archer</author><pubDate>Wed, 18 Mar 2009 13:12:00 GMT</pubDate><guid>http://www.cnitblog.com/Archer/archive/2009/03/18/55527.html</guid><wfw:comment>http://www.cnitblog.com/Archer/comments/55527.html</wfw:comment><comments>http://www.cnitblog.com/Archer/archive/2009/03/18/55527.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/Archer/comments/commentRss/55527.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Archer/services/trackbacks/55527.html</trackback:ping><description><![CDATA[
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: rgb(204, 204, 204); width: 98%; word-break: break-all; padding-top: 4px; background-color: rgb(238, 238, 238); "><span style="COLOR: #008080">1</span><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" lcevt="1"><span style="COLOR: #000000">type&nbsp;<br></span><span style="COLOR: #008080">2</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" lcevt="1">&nbsp;&nbsp;TStringArray&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;<br></span><span style="COLOR: #008080">3</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" lcevt="1">&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;<br></span><span style="COLOR: #008080">4</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" lcevt="1">&nbsp;&nbsp;&nbsp;&nbsp;property&nbsp;Strings[Index:&nbsp;Integer]:&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;<img src="http://www.cnitblog.com/Images/dot.gif" lcevt="1">;&nbsp;</span><span style="COLOR: #0000ff">default</span><span style="COLOR: #000000">;&nbsp;<br></span><span style="COLOR: #008080">5</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" lcevt="1">&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnitblog.com/Images/dot.gif" lcevt="1">&nbsp;<br></span><span style="COLOR: #008080">6</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" lcevt="1">&nbsp;&nbsp;end;&nbsp;<br></span><span style="COLOR: #008080">7</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" lcevt="1"></span></div>
若一个类有默认属性，你能使用缩写词 object[index]来访问这个属性，它就相当于 object.property[index]。<br><br>比如，给定上面的声明，StringArray.Strings[7]可以缩写为 StringArray[7]。<br><span style="COLOR: red">一个类只能有一个默认属性，在派生类中改变或隐藏默认属性可能导致无法预知的行为，因为编译器总是静态绑定一个对象地默认属<br>性。</span> <br><br>平常使用在数组属性后.<img src ="http://www.cnitblog.com/Archer/aggbug/55527.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Archer/" target="_blank">Archer</a> 2009-03-18 21:12 <a href="http://www.cnitblog.com/Archer/archive/2009/03/18/55527.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Delphi中的构造函数</title><link>http://www.cnitblog.com/Archer/archive/2009/03/06/55164.html</link><dc:creator>Archer</dc:creator><author>Archer</author><pubDate>Fri, 06 Mar 2009 12:13:00 GMT</pubDate><guid>http://www.cnitblog.com/Archer/archive/2009/03/06/55164.html</guid><wfw:comment>http://www.cnitblog.com/Archer/comments/55164.html</wfw:comment><comments>http://www.cnitblog.com/Archer/archive/2009/03/06/55164.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/Archer/comments/commentRss/55164.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Archer/services/trackbacks/55164.html</trackback:ping><description><![CDATA[
<p>Delphi中所有类都继承自TObject ,Create默认不是虚方法 ,Destroy默认是虚方法.<br>VCL中组件继承的大多Create都被声明成虚方法了。</p>
<p>在Delphi当中构造函数当中的create与析构函数destroy大部分都是虚方法.可以覆盖.<br>被覆盖的函数必须是虚(virtual)的，或者是动态(dynamic)的.<br>&nbsp;<br>(Constructors)构造函数,</p>
&nbsp; 用来创建和初始化一个实例对象,&nbsp; 构造函数返回的<span style="COLOR: #ff0000">对象的引用</span>.&nbsp;初始化对象是基于传给构造函数的参数值.<br>&nbsp;当类引用调用构造函数时,若执行过程中发生异常,则自动调用析构函数destroy来销毁不完整的对象.<br>&nbsp; 声明为虚方法的构造函数,和声明为静态时时相同的.虚构造函数允许使用多态.<br>&nbsp; 构造函数的初始化过程:<br>&nbsp;1.它在堆中为对象分配内存,并设置所有的有序类型的字段为0,把nil赋值给所有的指针和类类型的字段.使所有的字符串类型的字段为空. <br>&nbsp;2.构造函数中指定的其他动作(命令)开始执行.<br>&nbsp; 在派生类中构造函数的初始化过程:<br>&nbsp;1.调用继承下来的构造函数,对继承的字段进行初始化.<br>&nbsp;2.然后对派生类中新引入的字段进行初始化.<br>&nbsp;&nbsp;&nbsp; (以为构造函数总是把新对象分配的内存进行"清零"&lt;clear&gt;,所以,对象的所有字段开始时都是0&lt;有序类型&gt;,nil&lt;指针和类&gt;,空&lt;字符串&gt;或者unasslgned&lt;变体类型&gt;.所以,除非字段的值不为0或者空值,我们没有必要在构造函数当中初始化各字段);<br>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: rgb(204, 204, 204); width: 98%; word-break: break-all; padding-top: 4px; background-color: rgb(238, 238, 238); ">type<br>&nbsp;TShape = class(TGraphicControl) <br>&nbsp;private <br>&nbsp; FPen: TPen; <br>&nbsp; FBrush: TBrush; <br>&nbsp; procedure PenChanged(Sender: TObject); <br>&nbsp; procedure BrushChanged(Sender: TObject);<br>&nbsp;public&nbsp;<br>&nbsp; Constructor Create(Owner: TComponent); override;&nbsp;<br>&nbsp; Destructor Destroy; override;&nbsp;<br>&nbsp; ...<br>&nbsp;end; <br>&nbsp; Constructor TShape.Create(Owner: TComponent); <br>&nbsp;begin <br>&nbsp;&nbsp; inherited Create(Owner);&nbsp; // 初始化继承下来的部分&nbsp; <br>&nbsp;Width := 65;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp; 改变继承下来的属性 <br>&nbsp;Height := 65; <br>&nbsp;FPen := TPen.Create;&nbsp;&nbsp;&nbsp; //&nbsp; 初始化新字段<br>&nbsp;FPen.OnChange := PenChanged; <br>&nbsp;FBrush := TBrush.Create; <br>&nbsp;FBrush.OnChange := BrushChanged; <br>End; <span style="COLOR: #000000"></span><span style="COLOR: #000000"></span></div><img src ="http://www.cnitblog.com/Archer/aggbug/55164.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Archer/" target="_blank">Archer</a> 2009-03-06 20:13 <a href="http://www.cnitblog.com/Archer/archive/2009/03/06/55164.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>