[Lazarus] Delphi post-XE3 roadmap

Graeme Geldenhuys graeme at geldenhuys.co.uk
Wed Aug 29 11:39:16 CEST 2012


On 29/08/12 09:54, Michael Schnell wrote:
>
> Nonetheless to me it seems like a nice idea to have String as a sibling
> of TObjcet which in this case is somehow self-creating and freeing
> (RefCounting = True) like an interfaced Object.

I'm working on exactly that (well, if I understood your message 
correctly). It's just an experiment at the moment, but I have 
implemented a IString interface which declares methods like Count(), 
Length(), Replace(), Compare(), .SubStr(), .CharAt(), .CodepointAt() etc...

I then have a TString object which is reference counted and implements 
the IString interface. I then use IString everywhere I would have used 
String or AnsiString. Internally the string data is in UTF-8, but later 
I'll make this configurable between UTF-8 and UTF-16.

All the code is unit tested so far, and works quite nicely. My next step 
is to extend IString to include .ToUTF8(), .ToUTF16() etc, so that it 
makes it very easy to pass a TString's data to external API's.

Anyway, so far it is an interesting idea [for me], and maybe this 
experiment will actually go somewhere. :)

Regards,
   - Graeme -






More information about the Lazarus mailing list