Hi Jolyon > The problem is that what we're stuck with is a mess, so all we can do is > talk about the mess as a way of finding our way out of it (in the sense that > by talking about the mess we might one day understand the mess well enough > to be able to live with it).
You're fast putting me off upgrading. > i.e. a new user coming to Delphi 2009/2010 for the first time is going to > have a hard time understanding even the simplest things, such as why > ANSIUppercase() takes a UnicodeString parameter let alone treats it as > Unicode whilst Uppercase() also takes a UnicodeString yet treats it as > ASCII. > > Why isn't there simply: > > Uppercase(ANSIString) > Uppercase(UnicodeString) > Uppercase(WideString) > Looking at Delphi 6 I see the problem. AnsiUpperCase is defined as function AnsiUpperCase(const S: string): string; when it should have been defined as function AnsiUpperCase(const S: Ansistring): Ansistring; So I'm wondering if patching the VCL with such declarations might make things clearer. Likewise for Uppercase(); I don't see how Uppercase(UnicodeString) or Uppercase(WideString) makes any sense? I'm also wondering what the {$H–} compiler directive does now? Does it turn a Unicode string into a ShortString? Todd. _______________________________________________ NZ Borland Developers Group - Delphi mailing list Post: delphi@delphi.org.nz Admin: http://delphi.org.nz/mailman/listinfo/delphi Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: unsubscribe