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

Ross Levis ross at stationplaylist.com
Tue Feb 16 11:41:29 NZDT 2010


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




More information about the Delphi mailing list