<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body bgcolor=white lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>There was no change in the “Windows standard”.  It’s a simple error
in some poorly implemented error handling code added to the VCL at some point (subsequently
fixed in combo boxes, but not listboxes – as of D2006).<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>You needn’t have waded through all the replies to find that the
answer was provided.  The answer came very quickly… what then followed was a
great deal of pointless and diverting/misleading speculation as to other possible
explanations that disregarded the fact that the answer was very quickly
apparent from an inspection of the VCL source.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>FYI - Your “multiple by 2” solution worked because it
transformed a stored value of “-1” into “-2”, which then avoided the collision
between that value (-1) and the Windows “error” code and thus avoided the
problem caused by the overly-helpful and incorrectly implemented error handling
code in the VCL.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div style='border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt'>

<div>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";
color:windowtext'>From:</span></b><span style='font-size:10.0pt;font-family:
"Tahoma","sans-serif";color:windowtext'> delphi-bounces@delphi.org.nz
[mailto:delphi-bounces@delphi.org.nz] <b>On Behalf Of </b>Rohit Gupta<br>
<b>Sent:</b> Wednesday, 24 February 2010 9:55 a.m.<br>
<b>To:</b> NZ Borland Developers Group - Delphi List<br>
<b>Subject:</b> Re: [DUG] Is it a bug in latest version of Delphi? - Solution<o:p></o:p></span></p>

</div>

</div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>Sinu,<br>
<br>
I dont know if its been answered satisfactorily.&nbsp; There are too many
replies to wade through.&nbsp; I recall that along the way Windows standard
changed from 0 being a null pointer to -1.&nbsp; I had to change some of my
code in stringlist to work.&nbsp; I think my solution was to just multiply by 2
and then store it.&nbsp; Found my note - it happened in 2003.&nbsp; My
conclusion now, is that its a combination of windows version/updates and
version of Delphi that causes this issue.<br>
<br>
Rohit<br>
<br>
sinu sudhakaran wrote: <o:p></o:p></p>

<p class=MsoNormal style='margin-bottom:12.0pt'>Hi all,<br>
<br>
I came across a strange bug(???) in latest versions of Delphi.<br>
<br>
Have a look at the following code.<br>
<br>
procedure TForm1.Button1Click(Sender: TObject);<br>
var<br>
i : integer;<br>
begin<br>
ComboBox1.Clear;<br>
ComboBox1.Items.AddObject('All Locations', TObject(-1));<br>
ComboBox1.Items.AddObject('Only this Location', TObject(0));<br>
ComboBox1.Items.AddObject(Test Location', TObject(1));<br>
<br>
i := Integer(ComboBox1.Items.Objects[0]);<br>
showmessage(inttostr(i));<br>
end;<br>
<br>
When I tried to run this code in Delphi 6 and Delphi 2007 , I am getting List
Index out of bounds[0] error in Showmessage. When I tried -2, -3, -4… instead
of -1 object , I got the proper output without any <br>
List index out of bounds error. Also I am getting -1 without any error when I
tried this code in Delphi 3. <br>
<br>
Is it a bug in latest version of Delphi ? Any help is appreciated.<br>
<br>
Thank you<br>
<br>
Regards,<br>
Sinu<o:p></o:p></p>

<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=644
 style='width:483.0pt'>
 <tr>
  <td style='padding:0cm 0cm 0cm 0cm'>
  <p class=MsoNormal style='line-height:11.25pt'><span style='font-size:8.5pt;
  font-family:"Verdana","sans-serif"'><a
  href="http://sigads.rediff.com/RealMedia/ads/click_nx.ads/www.rediffmail.com/signatureline.htm@Middle?"
  target="_blank"><span style='border:solid windowtext 1.0pt;padding:0cm;
  text-decoration:none'><img border=0 width=100 height=100 id="_x0000_i1025"
  src="cid:~WRD000.jpg" alt="Image removed by sender."></span></a><o:p></o:p></span></p>
  </td>
 </tr>
</table>

<pre><o:p>&nbsp;</o:p></pre><pre style='text-align:center'>

<hr size=4 width="90%" align=center>

</pre><pre><o:p>&nbsp;</o:p></pre><pre>_______________________________________________<o:p></o:p></pre><pre>NZ Borland Developers Group - Delphi mailing list<o:p></o:p></pre><pre>Post: <a
href="mailto:delphi@delphi.org.nz">delphi@delphi.org.nz</a><o:p></o:p></pre><pre>Admin: <a
href="http://delphi.org.nz/mailman/listinfo/delphi">http://delphi.org.nz/mailman/listinfo/delphi</a><o:p></o:p></pre><pre>Unsubscribe: send an email to <a
href="mailto:delphi-request@delphi.org.nz">delphi-request@delphi.org.nz</a> with Subject: unsubscribe<o:p></o:p></pre>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

</div>

</body>

</html>