[DUG] Is it a bug in latest version of Delphi?

Kyley Harris Kyley at harrissoftware.com
Tue Feb 16 12:30:39 NZDT 2010


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..

just a guess and it probably has something to do with the compiler
typecasting rules you have designated.

On Tue, Feb 16, 2010 at 11:41 AM, Ross Levis <ross at stationplaylist.com>wrote:

> I often use the Object property of listbox and TStringList items to store
> pointers, or just numbers for array subscripts.  I don't see any problem
> doing that as it can save a lot of time.  It is just an integer variable
> internally.  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.  I'm not sure why.  The integer always exists and defaults to a
> value of 0.
>
> Ross.
>
> -----Original Message-----
> From: delphi-bounces at delphi.org.nz [mailto:delphi-bounces at delphi.org.nz]
> On Behalf Of Alister Christie
> Sent: Tuesday, 16 February 2010 10:20 a.m.
> To: NZ Borland Developers Group - Delphi List
> Subject: Re: [DUG] Is it a bug in latest version of Delphi?
>
> I can confirm that
>  ListBox1.Items.AddObject('foo', TObject(-1));
>   ShowMessage(IntToStr(Integer(ListBox1.Items.Objects[0])));
> gives an error but
>  ListBox1.Items.AddObject('foo', TObject(0));
>  ShowMessage(IntToStr(Integer(ListBox1.Items.Objects[0])));
> does not
>
> I think casting -1 to an object is probably not the best idea - what
> memory location does this point to anyway? 0xFFFFFFFF?
>
> Alister Christie
> Computers for People
> Ph: 04 471 1849 Fax: 04 471 1266
> http://www.salespartner.co.nz
> PO Box 13085
> Johnsonville
> Wellington
>
>
>
> sinu sudhakaran wrote:
> > Hi all,
> >
> > I came across a strange bug(???) in latest versions of Delphi.
> >
> > Have a look at the following code.
> >
> > procedure TForm1.Button1Click(Sender: TObject);
> > var
> > i : integer;
> > begin
> > ComboBox1.Clear;
> > ComboBox1.Items.AddObject('All Locations', TObject(-1));
> > ComboBox1.Items.AddObject('Only this Location', TObject(0));
> > ComboBox1.Items.AddObject(Test Location', TObject(1));
> >
> > i := Integer(ComboBox1.Items.Objects[0]);
> > showmessage(inttostr(i));
> > end;
> >
> > 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
> > List index out of bounds error. Also I am getting -1 without any error
> > when I tried this code in Delphi 3.
> >
> > Is it a bug in latest version of Delphi ? Any help is appreciated.
> >
> > Thank you
> >
> > Regards,
> > Sinu
> >
> > <
> http://sigads.rediff.com/RealMedia/ads/click_nx.ads/www.rediffmail.com/signatureline.htm@Middle
> ?>
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > NZ Borland Developers Group - Delphi mailing list
> > Post: delphi at delphi.org.nz
> > Admin: http://delphi.org.nz/mailman/listinfo/delphi
> > Unsubscribe: send an email to delphi-request at delphi.org.nz with Subject:
> unsubscribe
> _______________________________________________
> NZ Borland Developers Group - Delphi mailing list
> Post: delphi at delphi.org.nz
> Admin: http://delphi.org.nz/mailman/listinfo/delphi
> Unsubscribe: send an email to delphi-request at delphi.org.nz with Subject:
> unsubscribe
>
>
> _______________________________________________
> NZ Borland Developers Group - Delphi mailing list
> Post: delphi at delphi.org.nz
> Admin: http://delphi.org.nz/mailman/listinfo/delphi
> Unsubscribe: send an email to delphi-request at delphi.org.nz with Subject:
> unsubscribe
>



-- 
Kyley Harris
Harris Software
+64-21-671-821
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://listserver.123.net.nz/pipermail/delphi/attachments/20100216/2aa52408/attachment.html 


More information about the Delphi mailing list