UpperCase und AnsiUpperCase liefern dir einen String und keinen Character zurück. Wenn du es wie folgt machst, so klappt es wunderbar:
Delphi-Quellcode:
ord(UpperCase('a')[1]);
// bzw.
ord(AnsiUpperCase('a')[1]);
Über das
[1] selektierst du das erste Zeichen des resultierenden Strings, welches eben ein Character ist.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)