<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: More undocumented Win32 language features</title>
	<atom:link href="http://blogs.teamb.com/rudyvelthuis/2005/05/13/4311/feed" rel="self" type="application/rss+xml" />
	<link>http://blogs.teamb.com/rudyvelthuis/2005/05/13/4311</link>
	<description>Rudy Velthuis</description>
	<pubDate>Sat, 11 Feb 2012 15:13:39 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
		<item>
		<title>By: Roozbeh GHolizadeh</title>
		<link>http://blogs.teamb.com/rudyvelthuis/2005/05/13/4311#comment-4</link>
		<dc:creator>Roozbeh GHolizadeh</dc:creator>
		<pubDate>Wed, 05 Oct 2005 11:06:02 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.teamb.com/rudyvelthuis/2005/05/13/4271/#comment-4</guid>
		<description>Well i think this is also undocumented!&lt;br&gt;in delphi help about virtual methods in properties stated&lt;br&gt;&#34;If fieldOrMethod is a method, it cannot be dynamic and, if virtual, cannot be overloaded&#34;&lt;br&gt;&lt;br&gt;but following code compiles fine&lt;br&gt;&lt;br&gt;myclass=class&lt;br&gt;procedure SetTestValue(invalue : integer);overload;virtual;&lt;br&gt;procedure SetTestValue(invalue : string);overload;virtual;&lt;br&gt;property testvalue:integer write SetTestValue;&lt;br&gt;end;&lt;br&gt;&lt;br&gt;and doesnt compile in delphi 7!&lt;br&gt;&lt;br&gt;i also found this intresting thing(i dont know if in help stated or not)&lt;br&gt;&lt;br&gt;property only works with first overloaded procedure so the following doesnt compile!&lt;br&gt;&lt;br&gt;procedure SetTestValue(invalue : integer);overload;virtual;&lt;br&gt;procedure SetTestValue(invalue : string);overload;virtual;&lt;br&gt;property testvalue:string write SetTestValue;&lt;br&gt;&lt;br&gt;&lt;br&gt;forgive me if all was documented and told before ;)</description>
		<content:encoded><![CDATA[<p>Well i think this is also undocumented!<br />
<br />in delphi help about virtual methods in properties stated<br />
<br />&quot;If fieldOrMethod is a method, it cannot be dynamic and, if virtual, cannot be overloaded&quot;</p>
<p>but following code compiles fine</p>
<p>myclass=class<br />
<br />procedure SetTestValue(invalue : integer);overload;virtual;<br />
<br />procedure SetTestValue(invalue : string);overload;virtual;<br />
<br />property testvalue:integer write SetTestValue;<br />
<br />end;</p>
<p>and doesnt compile in delphi 7!</p>
<p>i also found this intresting thing(i dont know if in help stated or not)</p>
<p>property only works with first overloaded procedure so the following doesnt compile!</p>
<p>procedure SetTestValue(invalue : integer);overload;virtual;<br />
<br />procedure SetTestValue(invalue : string);overload;virtual;<br />
<br />property testvalue:string write SetTestValue;</p>
<p>forgive me if all was documented and told before ;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Laurent Dardenne</title>
		<link>http://blogs.teamb.com/rudyvelthuis/2005/05/13/4311#comment-16</link>
		<dc:creator>Laurent Dardenne</dc:creator>
		<pubDate>Wed, 08 Jun 2005 08:27:05 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.teamb.com/rudyvelthuis/2005/05/13/4271/#comment-16</guid>
		<description>And too, Strict private, Private, Public  directive inside a record:&lt;br&gt;&lt;br&gt;unit TestRecord;&lt;br&gt;&lt;br&gt;interface&lt;br&gt;Type&lt;br&gt; TUrec = record&lt;br&gt;     Strict private&lt;br&gt;      StrictPrivateValue : integer;&lt;br&gt;     Private&lt;br&gt;      PrivateValue : integer;&lt;br&gt;     Public&lt;br&gt;      PublicValue: Integer;&lt;br&gt;    end;&lt;br&gt;&lt;br&gt;implementation&lt;br&gt;end.&lt;br&gt;&lt;br&gt;program TestRec;&lt;br&gt;&lt;br&gt;{$APPTYPE CONSOLE}&lt;br&gt;&lt;br&gt;uses&lt;br&gt;  SysUtils,&lt;br&gt;  TestRecord in 'TestRecord.pas';&lt;br&gt;&lt;br&gt;type&lt;br&gt; Trec = record&lt;br&gt;     Strict private&lt;br&gt;      StrictPrivateValue : integer;&lt;br&gt;     Private&lt;br&gt;      PrivateValue : integer;&lt;br&gt;     Public&lt;br&gt;      PublicValue: Integer;&lt;br&gt;    end;&lt;br&gt;&lt;br&gt;var TR : Trec;&lt;br&gt;    TUR :TUrec;&lt;br&gt;    &lt;br&gt;begin&lt;br&gt;&lt;br&gt; with TR do&lt;br&gt;  begin&lt;br&gt;    StrictPrivateValeur:=1;&lt;br&gt;    PrivateValeur:=2;&lt;br&gt;    PublicValeur:=3;&lt;br&gt;  end;&lt;br&gt;&lt;br&gt; with TUR do&lt;br&gt;  begin&lt;br&gt;    //StrictPrivateValeur:=1; // error E2003 : Identifier not declared 'StrictPrivateValeur'&lt;br&gt;    //PrivateValeur:=2; // error E2003 : Identifier not declared'PrivateValeur'&lt;br&gt;    PublicValeur:=3;&lt;br&gt;  end;&lt;br&gt;&lt;br&gt;end.</description>
		<content:encoded><![CDATA[<p>And too, Strict private, Private, Public  directive inside a record:</p>
<p>unit TestRecord;</p>
<p>interface<br />
<br />Type<br />
<br /> TUrec = record<br />
<br />     Strict private<br />
<br />      StrictPrivateValue : integer;<br />
<br />     Private<br />
<br />      PrivateValue : integer;<br />
<br />     Public<br />
<br />      PublicValue: Integer;<br />
<br />    end;</p>
<p>implementation<br />
<br />end.</p>
<p>program TestRec;</p>
<p>{$APPTYPE CONSOLE}</p>
<p>uses<br />
<br />  SysUtils,<br />
<br />  TestRecord in &#8216;TestRecord.pas&#8217;;</p>
<p>type<br />
<br /> Trec = record<br />
<br />     Strict private<br />
<br />      StrictPrivateValue : integer;<br />
<br />     Private<br />
<br />      PrivateValue : integer;<br />
<br />     Public<br />
<br />      PublicValue: Integer;<br />
<br />    end;</p>
<p>var TR : Trec;<br />
<br />    TUR :TUrec;</p>
<p>begin</p>
<p> with TR do<br />
<br />  begin<br />
<br />    StrictPrivateValeur:=1;<br />
<br />    PrivateValeur:=2;<br />
<br />    PublicValeur:=3;<br />
<br />  end;</p>
<p> with TUR do<br />
<br />  begin<br />
<br />    //StrictPrivateValeur:=1; // error E2003 : Identifier not declared &#8216;StrictPrivateValeur&#8217;<br />
<br />    //PrivateValeur:=2; // error E2003 : Identifier not declared&#8217;PrivateValeur&#8217;<br />
<br />    PublicValeur:=3;<br />
<br />  end;</p>
<p>end.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Laurent Dardenne</title>
		<link>http://blogs.teamb.com/rudyvelthuis/2005/05/13/4311#comment-15</link>
		<dc:creator>Laurent Dardenne</dc:creator>
		<pubDate>Wed, 08 Jun 2005 07:55:45 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.teamb.com/rudyvelthuis/2005/05/13/4271/#comment-15</guid>
		<description>There is also the Initialize method. To initialize an array :&lt;br&gt; A := TDoubleArray.Create(1.7, 3.9, 17.1, 39.7, 42.0);&lt;br&gt; Writeln('Size =',Length(A));&lt;br&gt; for D in A do&lt;br&gt;  Writeln(D:1:1);&lt;br&gt;&lt;br&gt; Initialize(A);&lt;br&gt; Writeln('Size =',Length(A));&lt;br&gt;</description>
		<content:encoded><![CDATA[<p>There is also the Initialize method. To initialize an array :<br />
<br /> A := TDoubleArray.Create(1.7, 3.9, 17.1, 39.7, 42.0);<br />
<br /> Writeln(&#8217;Size =&#8217;,Length(A));<br />
<br /> for D in A do<br />
<br />  Writeln(D:1:1);</p>
<p> Initialize(A);<br />
<br /> Writeln(&#8217;Size =&#8217;,Length(A));<br />
</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jim McKeeth</title>
		<link>http://blogs.teamb.com/rudyvelthuis/2005/05/13/4311#comment-3</link>
		<dc:creator>Jim McKeeth</dc:creator>
		<pubDate>Thu, 26 May 2005 22:08:35 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.teamb.com/rudyvelthuis/2005/05/13/4271/#comment-3</guid>
		<description>That is some major fun!  Thanks for sharing these finds!</description>
		<content:encoded><![CDATA[<p>That is some major fun!  Thanks for sharing these finds!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rudy Velthuis</title>
		<link>http://blogs.teamb.com/rudyvelthuis/2005/05/13/4311#comment-13</link>
		<dc:creator>Rudy Velthuis</dc:creator>
		<pubDate>Fri, 13 May 2005 14:48:52 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.teamb.com/rudyvelthuis/2005/05/13/4271/#comment-13</guid>
		<description>&#60;&#60;&lt;br&gt; Actually, experimental units are documented in 2005.&lt;br&gt;&#62;&#62;&lt;br&gt;&lt;br&gt;Oh cool, I was not aware of that.&lt;br&gt;&lt;br&gt;&#60;&#60;&lt;br&gt;With these directives, do they actually work (i.e. are they enforced in the compiler/language), or does the compiler ignore them and not error? For some of these it's obvious that they must work (e.g. overloaded default array properties), but for the directives it may not be so clear.&lt;br&gt;&#62;&#62;&lt;br&gt;&lt;br&gt;Abstract, when used for classes, does not have any useful meaning I could find in the online help, so I did not test that. But the &#34;sealed&#34; directive is enforced, i.e. you can't extend a sealed class.&lt;br&gt;&lt;br&gt;AFAIK, &#34;final&#34; is also enforced.&lt;br&gt;&lt;br&gt;</description>
		<content:encoded><![CDATA[<p>&lt;&lt;<br />
<br /> Actually, experimental units are documented in 2005.<br />
<br />&gt;&gt;</p>
<p>Oh cool, I was not aware of that.</p>
<p>&lt;&lt;<br />
<br />With these directives, do they actually work (i.e. are they enforced in the compiler/language), or does the compiler ignore them and not error? For some of these it&#8217;s obvious that they must work (e.g. overloaded default array properties), but for the directives it may not be so clear.<br />
<br />&gt;&gt;</p>
<p>Abstract, when used for classes, does not have any useful meaning I could find in the online help, so I did not test that. But the &quot;sealed&quot; directive is enforced, i.e. you can&#8217;t extend a sealed class.</p>
<p>AFAIK, &quot;final&quot; is also enforced.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anthony Frazier</title>
		<link>http://blogs.teamb.com/rudyvelthuis/2005/05/13/4311#comment-12</link>
		<dc:creator>Anthony Frazier</dc:creator>
		<pubDate>Fri, 13 May 2005 12:26:19 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.teamb.com/rudyvelthuis/2005/05/13/4271/#comment-12</guid>
		<description>Actually, experimental units are documented in 2005.  The following is the help link where its documented.&lt;br&gt;&lt;br&gt;ms-help://borland.bds3/bds3guide/html/DeclarationsAndStatements.htm&lt;br&gt;&lt;br&gt;With these directives, do they actually work (i.e. are they enforced in the compiler/language), or does the compiler ignore them and not error?  For some of these it's obvious that they must work (e.g. overloaded default array properties), but for the directives it may not be so clear.</description>
		<content:encoded><![CDATA[<p>Actually, experimental units are documented in 2005.  The following is the help link where its documented.</p>
<p>ms-help://borland.bds3/bds3guide/html/DeclarationsAndStatements.htm</p>
<p>With these directives, do they actually work (i.e. are they enforced in the compiler/language), or does the compiler ignore them and not error?  For some of these it&#8217;s obvious that they must work (e.g. overloaded default array properties), but for the directives it may not be so clear.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

