A small site with links and info to some Delphi code of mine I thought I might as well put up, together with the occasional musing on programming in Delphi. If you have an issue with my Exif code, please add a comment to the post here, not to this page.

– Chris Rolliston, May 2009

17 thoughts on “About

  1. Hi,
    I found a small issue in the great CCR Exif component. When calling “SaveToJPEG”, it may fail (if the target file is not JPEG). In such a case the program clears the content of the file completely which is not nice. A small code change will solve it:

    [Snip. I’ve moved this comment to here (that’s a link BTW) — CR.]

  2. [Snip — moved comment to here (link), as clearly requested above. By all means ask about my Exif code, but please only where I actually ask — it keeps things in order that way. I have now moved older comments to a more proper place since you originally posted to hopefully stop this happening again.]

  3. Your comment on http://www.deltics.co.nz/blog/?p=563 stating that “That UpperCase and LowerCase in D2009/10 only converts characters in the ASCII range is because they only ever did, a fact that was and is documented in the help” is false. I use BCB5 and UpperCase and LowerCase functions yield correct results when applied to the strings ‘aà’ and ‘AÀ’. I have also had no problem doing Hebrew language support in a survey for Israel using AnsiString and code pages. There was no need for Unicode support in the latest Delphi/BCB IDEs. They should have done 64-bit first.

  4. A quote from the BCB5 help on the AnsiString::UpperCase() function :-
    “UpperCase returns a new AnsiString that contains all characters in this string, converted to upper case. The conversion uses the current Windows locale (that is, it includes 8-bit international characters.).”

    • WTF led you to comment here nearly a whole year after that Joylon Smith post (and my response to it)? Anyhow, with respect to the substantive issue at hand, you’ll find that I was 100% correct with respect to the Delphi UpperCase and LowerCase functions in SysUtils.pas – go and check yourself if you don’t believe me. If the corresponding methods on the C++Builder wrapper class for AnsiString were otherwise, then… so be it.

      To be clear, Delphi had AnsiLowerCase and AnsiUpperCase functions that did what you say; LowerCase and UpperCase (i.e., the Delphi global routines, not the C++ methods) were then overloaded at some point to optionally call them if you passed in the relevant extra parameter, but the default was still to only convert ASCII.

      That said, the enforced Unicode transition for C++Builder was plainly much, much harder than for Delphi. If it were C++Builder and not Delphi that was the main product, then for sure, my assessment about the change would probably have been different.

      • This implies that Delphi UpperCase behaves differently to C++ Builder’s. C++ Builder definitely performs what Delphi’s AnsiUpperCase function does when calling UpperCase in C++ Builder 5. I trust that’s clear. As a result, I have rarely had problems handling European character sets in my BCB5 apps. I have even handled a Hebrew project successfully, using codepages, AnsiStrings and RTL reading under Windows OS. No need for Unicode (yet)!

        • This implies that Delphi UpperCase behaves differently to C++ Builder’s.

          Er, yeah – they are two different things (AnsiString has no methods of its own in Delphi – indeed, it isn’t even a class). Mind you, I would be lying if I were to say I had realised beforehand that the C++ method did something different to the equivalent Delphi function!

        • It most of all implies that Delphi 2010 is not C++Builder 5 or Delphi 5. Many things have changed since those products were sold.

        • Rudy – now now, let’s not start confusing things again. Mark’s *whole claim* is that the newer releases have debased functionality that was previously had in older ones. The fact things *haven’t* actually changed with respect to the particular issue at hand is the whole point.

  5. First, I wanted to thank you for the great work you did on the EXIF code.
    Second, I have a small extension to it:

    [Snip – moved to here. Not Jens’ fault – I hadn’t updated the link in the main text above.]

  6. “If you have an issue with my Exif code, please add a comment to the post here, not to this page” … sorry, but on that page I only see “Comments”, ” not comments leave one->”.

    The examples show a call to ExifData.LoadFromGraphic() but there is no such function in v1.1.2

    11 Comments leave one →

    • It’s LoadFromJPEG in v1.1.2, however I suggest you use the trunk version. Please post a comment on the linked post if you have any more questions about CCR Exif, thanks.

  7. Chris, Do you have a full working example of “Setting up a title bar in widows 7” for XE2 ?

    Thanks in advance

  8. I was sent to your page by my Developer Network enquiry, do you have a complete skeleton application with source code I can try ?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s