<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<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:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc="http://microsoft.com/officenet/conferencing" xmlns:D="DAV:" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:mt="http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda="http://www.passport.com/NameSpace.xsd" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:st="&#1;" xmlns="http://www.w3.org/TR/REC-html40">

<head>

<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<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;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
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;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@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 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'>Why do people insist on speculating as to the cause of the
problem when they can just look at the VCL source and see the very simple and
ordinary explanation ?!?!<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'>The problem is simply an incorrect and misleading error raised
by the VCL based on a naļve assumption.  No violation of OO principles, no
funky cast/recast type violations, just bogus error handling that has all the
hallmarks of &#8220;intern code&#8221;.<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'>Reach out with your feelings&#8230;  USE THE 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>

<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"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
delphi-bounces@delphi.org.nz [mailto:delphi-bounces@delphi.org.nz] <b>On Behalf
Of </b>Kyley Harris<br>
<b>Sent:</b> Tuesday, 16 February 2010 12:31 p.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?<o:p></o:p></span></p>

</div>

</div>

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

<p class=MsoNormal>Pointers and TObject are unsigned integers (cardinals) not
(integer) casting to -1 is converting to the cardinal equvalent, which when
pulled back is making an out of bounds integer..<o:p></o:p></p>

<div>

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

</div>

<div>

<p class=MsoNormal style='margin-bottom:12.0pt'>just a guess and it probably
has something to do with the compiler typecasting rules you have designated.<o:p></o:p></p>

<div>

<p class=MsoNormal>On Tue, Feb 16, 2010 at 11:41 AM, Ross Levis &lt;<a
href="mailto:ross@stationplaylist.com">ross@stationplaylist.com</a>&gt; wrote:<o:p></o:p></p>

<p class=MsoNormal>I often use the Object property of listbox and TStringList
items to store pointers, or just numbers for array subscripts. &nbsp;I don't
see any problem doing that as it can save a lot of time. &nbsp;It is just an
integer variable internally. &nbsp;I seem to remember coming across the same
problem once (D7) and had to use -2 instead of -1 to indicate no value or
something of that nature. &nbsp;I'm not sure why. &nbsp;The integer always
exists and defaults to a value of 0.<br>
<br>
Ross.<o:p></o:p></p>

<div>

<p class=MsoNormal><br>
-----Original Message-----<br>
From: <a href="mailto:delphi-bounces@delphi.org.nz">delphi-bounces@delphi.org.nz</a>
[mailto:<a href="mailto:delphi-bounces@delphi.org.nz">delphi-bounces@delphi.org.nz</a>]
On Behalf Of Alister Christie<br>
Sent: Tuesday, 16 February 2010 10:20 a.m.<br>
To: NZ Borland Developers Group - Delphi List<br>
Subject: Re: [DUG] Is it a bug in latest version of Delphi?<br>
<br>
I can confirm that<br>
&nbsp;ListBox1.Items.AddObject('foo', TObject(-1));<o:p></o:p></p>

</div>

<p class=MsoNormal>&nbsp;ShowMessage(IntToStr(Integer(ListBox1.Items.Objects[0])));<br>
gives an error but<br>
&nbsp;ListBox1.Items.AddObject('foo', TObject(0));<br>
&nbsp;ShowMessage(IntToStr(Integer(ListBox1.Items.Objects[0])));<br>
does not<br>
<br>
I think casting -1 to an object is probably not the best idea - what<br>
memory location does this point to anyway? 0xFFFFFFFF?<br>
<br>
Alister Christie<br>
Computers for People<br>
Ph: 04 471 1849 Fax: 04 471 1266<br>
<a href="http://www.salespartner.co.nz" target="_blank">http://www.salespartner.co.nz</a><br>
PO Box 13085<br>
Johnsonville<br>
Wellington<br>
<br>
<br>
<br>
sinu sudhakaran wrote:<br>
&gt; Hi all,<br>
&gt;<br>
&gt; I came across a strange bug(???) in latest versions of Delphi.<br>
&gt;<br>
&gt; Have a look at the following code.<o:p></o:p></p>

<div>

<p class=MsoNormal>&gt;<br>
&gt; procedure TForm1.Button1Click(Sender: TObject);<br>
&gt; var<o:p></o:p></p>

</div>

<p class=MsoNormal>&gt; i : integer;<br>
&gt; begin<br>
&gt; ComboBox1.Clear;<br>
&gt; ComboBox1.Items.AddObject('All Locations', TObject(-1));<br>
&gt; ComboBox1.Items.AddObject('Only this Location', TObject(0));<br>
&gt; ComboBox1.Items.AddObject(Test Location', TObject(1));<br>
&gt;<br>
&gt; i := Integer(ComboBox1.Items.Objects[0]);<br>
&gt; showmessage(inttostr(i));<br>
&gt; end;<br>
&gt;<br>
&gt; When I tried to run this code in Delphi 6 and Delphi 2007 , I am<br>
&gt; getting List Index out of bounds[0] error in Showmessage. When I tried<br>
&gt; -2, -3, -4&#8230; instead of -1 object , I got the proper output without any<br>
&gt; List index out of bounds error. Also I am getting -1 without any error<br>
&gt; when I tried this code in Delphi 3.<br>
&gt;<br>
&gt; Is it a bug in latest version of Delphi ? Any help is appreciated.<br>
&gt;<br>
&gt; Thank you<br>
&gt;<br>
&gt; Regards,<br>
&gt; Sinu<br>
&gt;<br>
&gt; &lt;<a
href="http://sigads.rediff.com/RealMedia/ads/click_nx.ads/www.rediffmail.com/signatureline.htm@Middle"
target="_blank">http://sigads.rediff.com/RealMedia/ads/click_nx.ads/www.rediffmail.com/signatureline.htm@Middle</a>?&gt;<br>
&gt;<br>
&gt;<br>
&gt; ------------------------------------------------------------------------<o:p></o:p></p>

<div>

<div>

<p class=MsoNormal>&gt;<br>
&gt; _______________________________________________<br>
&gt; NZ Borland Developers Group - Delphi mailing list<br>
&gt; Post: <a href="mailto:delphi@delphi.org.nz">delphi@delphi.org.nz</a><br>
&gt; Admin: <a href="http://delphi.org.nz/mailman/listinfo/delphi"
target="_blank">http://delphi.org.nz/mailman/listinfo/delphi</a><br>
&gt; Unsubscribe: send an email to <a href="mailto:delphi-request@delphi.org.nz">delphi-request@delphi.org.nz</a>
with Subject: unsubscribe<br>
_______________________________________________<br>
NZ Borland Developers Group - Delphi mailing list<br>
Post: <a href="mailto:delphi@delphi.org.nz">delphi@delphi.org.nz</a><br>
Admin: <a href="http://delphi.org.nz/mailman/listinfo/delphi" target="_blank">http://delphi.org.nz/mailman/listinfo/delphi</a><br>
Unsubscribe: send an email to <a href="mailto:delphi-request@delphi.org.nz">delphi-request@delphi.org.nz</a>
with Subject: unsubscribe<br>
<br>
<br>
_______________________________________________<br>
NZ Borland Developers Group - Delphi mailing list<br>
Post: <a href="mailto:delphi@delphi.org.nz">delphi@delphi.org.nz</a><br>
Admin: <a href="http://delphi.org.nz/mailman/listinfo/delphi" target="_blank">http://delphi.org.nz/mailman/listinfo/delphi</a><br>
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></p>

</div>

</div>

</div>

<p class=MsoNormal><br>
<br clear=all>
<br>
-- <br>
Kyley Harris<br>
Harris Software<br>
+64-21-671-821<o:p></o:p></p>

</div>

</div>

</div>

</body>

</html>