i tested getlasterror also and it does not fail when an invalid index is returned. <div><br></div><div>As i mentioned earlier.. index[99] will not fail.. you just get -1 :D</div><div><br></div><div>pre-testing the range is the only bypass. or.. just store your data in a structure thats kinder to -1 :)<br>
<br><div class="gmail_quote">On Tue, Feb 16, 2010 at 3:57 PM, Jolyon Smith <span dir="ltr">&lt;<a href="mailto:jsmith@deltics.co.nz">jsmith@deltics.co.nz</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Good luck with GetLastError().  There&#39;s nothing to indicate that<br>
LB_GETITEMDATA processing will set a Windows &quot;LastError&quot;.<br>
<br>
And empirically I would have to say that it doesn&#39;t:<br>
<br>
// On an empty Listbox1 ..<br>
<br>
  r := SendMessage(Listbox1.Handle, LB_GETITEMDATA, 100, 0);<br>
<div class="im">  if GetLastError &lt;&gt; 0 then<br>
    RaiseLastOSError;<br>
<br>
</div>  if r = -1 then<br>
    ShowMessage(&#39;oops&#39;);<br>
<br>
<br>
Will yield only the &quot;oops&quot; message, no OS error.<br>
<br>
I am speculating (in this case I don&#39;t have the source for SendMessage() or<br>
the LISTBOX wndproc) that SendMessage() isn&#39;t setting an error condition<br>
(after all it is successfully sending a message and returning the result)<br>
and that the LISTBOX wndproc doesn&#39;t SetLastError() when processing<br>
LB_GETITEMDATA, at least not for an invalid item index.<br>
<div class="im"><br>
<br>
<br>
&gt; -----Original Message-----<br>
&gt; From: <a href="mailto:delphi-bounces@delphi.org.nz">delphi-bounces@delphi.org.nz</a> [mailto:<a href="mailto:delphi-">delphi-</a><br>
</div><div class="im">&gt; <a href="mailto:bounces@delphi.org.nz">bounces@delphi.org.nz</a>] On Behalf Of Karl Reynolds<br>
&gt; Sent: Tuesday, 16 February 2010 3:29 p.m.<br>
&gt; To: NZ Borland Developers Group - Delphi List<br>
&gt; Subject: Re: [DUG] Is it a bug in latest version of Delphi?<br>
&gt;<br>
</div><div><div></div><div class="h5">&gt; On Tue, Feb 16, 2010 at 3:06 PM, Jolyon Smith &lt;<a href="mailto:jsmith@deltics.co.nz">jsmith@deltics.co.nz</a>&gt;<br>
&gt; wrote:<br>
&gt; &gt; Win API returns -1 to indicate “an error”.  Any error.  Not a<br>
&gt; specific<br>
&gt; &gt; error.  Certainly not specifically a list index error.<br>
&gt;<br>
&gt; Pardon me for being pedantic, but while I agree with everything else<br>
&gt; you said, I feel the need to reiterate that -1 isn&#39;t actually returned<br>
&gt; to *indicate* an error (and you mentioned the conflict between an<br>
&gt; error result and a valid result yourself at one point). It&#39;s just the<br>
&gt; value returned when an error has occured. And yes, that means the VCL<br>
&gt; code is wrong.<br>
&gt;<br>
&gt; GetLastError... I won&#39;t say it again, promise. ;)<br>
&gt;<br>
&gt; Cheers,<br>
&gt; Karl<br>
&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<br>
&gt; 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<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Kyley Harris<br>Harris Software<br>+64-21-671-821<br>
</div>