Para determinar si es una letra
IF ((caracter >= 'A') AND (caracter <= 'Z')) THEN
Claro, también podría ser
IF ((caracter >= chr (65)) AND (caracter <= chr (90))) THEN
o
IF ((ord (caracter) >= 65) AND (ord (caracter) <= 90)) THEN
Yo, la verdad, me quedo con la primera opción, es la más clara, evita errores, y además, no hay que aprenderse los códigos ASCII :p
Esto yo lo haría así con las letras del alfabeto inglés (tanto mayúsculas como minúsculas), y con los dígitos del 0 al 9. Para otros caracteres sí usaría el código ASCII (y SIEMPRE usando constantes, por ejemplo:
TeclaEsc := #27; //el código ASCII de la tecla ESC es el 27, aquí sí es necesario usarlo