Don't think so.
the character "C" is ASCII 67, independent if it's displayed underlined or not.
The "underline" (as well as Bold, italic) are a property of the TypeFace of the used Font.
It's not part of the CodePoint of the Character
I think there is a way to actually read (from code) which character is the accelerator of a control, since "&" becomes part of the caption/string, it's just not displayed (or better said: get's "translated" to be underlining the following character).
I could guess at something like (not tested)
iPos:=Pos('&',Button.Caption);
If iPos>0 Then AccChar:=Button.Caption[iPos+1];
EDIT: Of the top of my head coming to mind would be to use a (custom?) implementation of a HTML-capable "DisplayText"-Control (Label, whatever), which gets shown at the correct position, with Text formated with HTML-Tags