<p>Am 19.12.2014 21:58 schrieb "Ralf Quint" <<a href="mailto:freedos.la@gmail.com">freedos.la@gmail.com</a>>:<br>
><br>
> On 12/19/2014 12:53 PM, Joost van der Sluis wrote:<br>
>><br>
>> On 12/19/2014 09:48 PM, Ralf Quint wrote:<br>
>>><br>
>>> I have been trying to use tStringList in a larger project of mine, but<br>
>>> this just keeps bombing out with a exception.<br>
>>> I have been able to reproduce the problem with this very simple test<br>
>>> program:<br>
>>><br>
>>> program project1;<br>
>>><br>
>>> USES Classes;<br>
>>><br>
>>> Var T : tStringList;<br>
>>>      S : String;<br>
>>> begin<br>
>>>    S := 'Test';<br>
>>>    T.Create;<br>
>>> // T.Clear;<br>
>>>    T.Add (S);<br>
>>>    T.Free;<br>
>>> end.<br>
>><br>
>><br>
>> You're mixing old TP-style objects with classes.<br>
>><br>
>> T := TStringList.Create is the correct syntax.<br>
><br>
> Well, then why is the compiler building this just fine without even throwing an error?!?!?</p>
<p>Because Create is a legal method call as well. You can call a constructor like a normal method on an existing instance.</p>
<p>> As mentioned, I do not get the error at the .Create call, but at anything after that...<br>
> I do not have a working Delphi system at hand right now, but I am sure that this would have compiled and worked on anything up to Delphi 2006 just fine.</p>
<p>Delphi will compile this (like FPC does), but it will fail at runtime. Trust me here, I did the mistake a few times myself when I thought about too many other things.</p>
<p>Regards,<br>
Sven</p>