On 3/21/2016 3:44 PM, Michael Van Canneyt wrote:
The reason for this behaviour is that find needs to be sure that the
list is sorted.
If it thinks the list is not sorted, the result cannot be guaranteed to be
correct, and this is an error condition.

Then it should raise an exception, not silently exit.

IMO, it's a bad change because it forces us to set Sorted to true and deal with the extra overhead that that introduces even for lists that we know are sorted externally. The fact that it breaks Delphi compatibility for little gain is another knock against it.

TStringList is just one possible implementation of TStrings. It is only there 
for your ease of use.

If you don't like it, you can use another one. You can find several. There is 
one in inifiles, the LCL probably also contains a couple.

Why would you possibly think that it's better for us to use a TStrings implementation from IniFiles rather than the one in Classes when we want to store a specific list of strings? That's what the core RTL classes are for.

If all APIs work with TStrings, then they don't care what TStrings
descendent you use. So you are free to use one that does whatever you want.

Nobody said anything about declaring APIs. We have concrete instances of TStringList that we're creating and encapsulating in our classes. We're not passing in random TStrings/TStringList instances to these things.

Regardless, Find is introduced in TStringList, not TStrings.

--
Zoë Peterson
Scooter Software


_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to